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:

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