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:

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