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:

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