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