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:

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