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:

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