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:

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