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