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:

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