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:

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