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:

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