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.

Categories:

Tags:

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

AgileSparks Newsletter

Subscribe to our newsletter, and stay updated on the latest Agile news and events

academy@agilesparks.com

WELCOME

to our new website

WELCOME

to our new website

This website uses Cookies to provide a better experience
Shopping cart