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:

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