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:

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