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:

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