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:

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