Amusement Park Methods

Facebook
Twitter
LinkedIn
Pinterest
WhatsApp
Sometimes you stumble upon amusement park methods. Remember the feeling when first going through the gates of a big amusement park? When you get a first glimpse of how vast it is? you see some rides close by and in the distance, you see the tall roller coasters. That’s the feeling I’m talking about. You start scrolling through the method. Just to understand what’s before you, you want to see how long it gets. You scroll and scroll and it goes on and on, and you start to go faster but it never ends. As Louis and Clark tried to find a path through the Rockies to get to the Pacific, you are making your way through this monstrous method, this fantastic creation. As you progress you discover gems and places you would like to have the time to appreciate. You see static methods, more and more of them, this one reaching the database, this one getting some configuration data, that one directly contacts some external interface. After clearing some dense string manipulation statements you see a variable that looks familiar. It is called “Type”. You decide to go back and indeed it is referred to throughout the method. You immediately think of polymorphism. You continue. Something new appears at the bottom of the screen but you’re still not sure. Could it be? You scroll down some more and it is revealed in its full magnificence. A colossal If-Else statement, something that shadows everything you ever knew. It goes on and on. Endless indentations with complex conditions. It must be the creation of generations upon generations of developers. Like stalactites, this is a magical creation of nature. You need to make a small change. You find the exact place. What will you do? Will you just make it and run the entire flow? That might work. It might work but it wouldn’t do. You are a professional. Would you miss all those great rides? You decide to tame the beast. It is just you and the machine. You want to handle it all together but you know it is too risky. The stakes are high. At any moment someone might come up with something more urgent to do and you will get stuck with nothing. So you extract a small part of the method, the area where you need to make the change, to a different method. Sometimes it will be to a different class. You replace all the static calls with objects that will make the static calls in production but in the test will return whatever it is you tell them to. You write one test to run the new method. To make it pass you compose the fake data. It passes. Once you have the basic infrastructure more and more tests are flowing through your fingers. You cleared the area for work. You have the method under a harness. Now you write the tests for the change you need to do and indeed it fails. You make the required change and the test passes. Feeling satisfied you look at all the good the method has yet to offer. You wink at it with a promise for another visit. You mount your horse, tip your hat and ride into the horizon.
Subscribe for Email Updates:

Categories:

Tags:

Kanban 101
EOS®
The Kanban Method
SAFe
Software Development
RTE Role
Lean Risk Management
Retrospectives
predictability
agileisrael
Scrum Primer
GanttBan
Enterprise DevOps
ART Success
Nexus
Introduction to Test Driven Development
ALM Tools
Introduction to ATDD
Sprint Iteration
Lean Software Development
DevOps
NIT
Perfection Game
ScrumMaster Tales
Business Agility
Product Ownership
speed at scale
Achieve Business Agility
Rapid RTC
ATDD vs. BDD
Jira Plans
Nexus and Kanban
Entrepreneurial Operating System®
Continuous Planning
Risk-aware Product Development
Sprint Retrospectives
Kanban
Legacy Code
Coaching Agile Teams
Lean-Agile Budgeting
ARTs
Artificial Intelligence
Jira
Elastic Leadership
Kanban Kickstart Example
QA
Code
Lean Agile Leadership
Scrum With Kanban
Scrum Master Role
Kanban Game
Iterative Incremental Development
Agile Release Planning
Planning
Agile and DevOps Journey
PI Objectives
Agile Basics
Spotify
Covid19
Jira Cloud
Hybrid Work
POPM
Risk Management on Agile Projects
Continuous Delivery
Lean Startup
Lean Agile
Scrum and XP
Confluence
User stories
Daily Scrum
IT Operations
SA
TDD
Limiting Work in Progress
Agile Games
Nexus vs SAFe
Software Development Estimation
Tools
SPC
ATDD
speed @ scale
Agility
Lean and Agile Techniques
SAFe DevOps
Pomodoro Technique
Rovo
Scrum Master
Agile Development
Agile India
Agile Product Ownership
Agile Community
Agile Techniques
Operational Value Stream
Agile Israel
Kaizen Workshop
Reading List
Accelerate Value Delivery At Scale
Large Scale Scrum
Frameworks
Program Increment
Sprint Planning
Scrum
Development Value Streams
An Appreciative Retrospective
Games and Exercises
Amdocs
Keith Sawyer
Scrum Values
WIP
Agile Project
Kaizen
chatgpt
The Agile Coach
Scrum Guide
Release Train Engineer
Kanban Basics
What Is Kanban
Lean Agile Basics
BDD
Atlassian
Releases Using Lean
Continuous Integration
Professional Scrum Master
Self-organization
Atlaassian
Slides
Agile Release Management
Implementing SAFe
Agile Mindset
Scrum.org
Agile Program
Lean-Agile Software Development
A Kanban System for Software Engineering
Agile Project Management
Effective Agile Retrospectives
Presentation
transformation
Agile in the Enterprise
PI Planning
Manage Budget Creation
Agile Testing Practices
Agile Israel Events
Team Flow
System Integration Environments
Certification
Managing Projects
SAFe Release Planning
Nexus and SAFe
LPM
Agile
System Team
lean agile change management
Lean Budgeting
Story Slicing
Portfolio for Jira
Applying Agile Methodology
Agile Assembly Architecture
Process Improvement
Agile Outsourcing
Product Management
Value Streams
Agile Marketing
Lean and Agile Principles and Practices
RSA
Jira admin
Video
Agile Games and Exercises
Acceptance Test-Driven Development
Agile Contracts Best Practices
Webinar
Agile Delivery
Continuous Deployment
Agile Exercises
Managing Risk on Agile Projects
Agile Product Development
AI Artificial Intelligence
Certified SAFe
Engineering Practices
ROI
Change Management
Advanced Roadmaps
Nexus Integration Team
Agile for Embedded Systems
Legacy Enterprise
Professional Scrum Product Owner
Principles of Lean-Agile Leadership
LAB
Agile Risk Management
Tips
Continuous Improvement
Risk Management in Kanban
RTE
Lean Agile Organization
Quality Assurance
Implementation of Lean and Agile
Scaled Agile Framework
System Archetypes
LeSS
Built-In Quality
AgileSparks
Test Driven Development
Systems Thinking
Lean Agile Management
AI
AgileSparks
Logo
Enable registration in settings - general

Contact Us

Request for additional information and prices

AgileSparks Newsletter

Subscribe to our newsletter, and stay updated on the latest Agile news and events

This website uses Cookies to provide a better experience
Shopping cart