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:

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