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