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