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:

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