Search
Close this search box.
Search
Close this search box.
Search
Close this search box.

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:

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