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:

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