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