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:

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