Tuesday, October 7, 2014

Agile vs. non-Agile Value Delivery

One of the key differences between Agile and non-Agile approaches is how scope is managed. Agile techniques use some form of continuous backlog management, while non-Agile approaches set the scope up-front and changes to that scope are painful. As a result, I'm often asked how this impacts budgeting. I respond that I prefer a budgeting approach that aligns with "Beyond Budgeting" thinking, but I recognize that such a shift likely won't occur at the same time the team wants to start using Agile. I advise them to secure budget the same way they have been (due primarily to lack of choice), but use the money in a more Agile way. Here are three scenarios that illustrate why.

The Perfect Planning Scenario

First, let's look at what happens if both Agile and non-Agile approaches were to deliver exactly the same value implemented exactly the same way and we knew up-front exactly how much it would cost. If we took an iterative delivery approach then we would see an "S-curve" in the delivery of value (in blue), as explained in the video "Agile Product Ownership in a Nutshell" by Henrik Kniberg (starting at the 8:27mark). This allows us to capitalize on what we're building faster, so we start making or saving money faster. Compare this with the non-Agile approach (in red), where we don't see any value until the end. The area between the blue line and the red line is additional realized value over time, even though we ended up in the exact same place at the exact same time.

Blue = Agile; Red = non-Agile

The Bad Estimate / Budget Cut Scenario

Now let's imagine (if you can) a scenario where we don't have sufficient time to deliver all of the value. Maybe it's because our estimates are off. Maybe because it's because our budget is cut. Whatever the case, we end up with 60% of the time and money necessary to deliver all of the planned value. If we take an Agile approach, we end up with the top 60% of the functionality, 100% completed. If we take a non-Agile approach, we end up with 100% of the functionality 60% completed. This means that we're either delivering nothing but documentation and partially-coded functionality, or we end up begging for the money required to finish delivering what we started out to deliver.

Blue=Agile; Red=non-Agile

The Imperfect Human Scenario

This scenario was difficult to name - I'm open to alternatives. Basically, this is the scenario where the humans responsible for doing all of the non-Agile prep work of requirements elicitation, design, and coding end up delivering something that not only took longer than anticipated but didn't provide the desired value. By taking an Agile approach, we do "Just Enough, Just in Time" everything, so we're always as smart as possible when we make decisions. We work in short iterations and get fast feedback so that our defects are cheaper and our direction is constantly being corrected. As a result, we end up delivering more value sooner.

Blue=Agile; Red=non-Agile

Making a Point

As per usual, my drawings are overly-simplified to make a point. Agile is not a silver bullet, but taking an Agile approach means you're more likely to deliver more value sooner and end up with a better end-product. Hopefully this approach propagates throughout the entire organization and the way you manage work-intake, scope approval, and value execution become leaner and more continuous from end-to-end. In the meantime, do what you can within the reality of the world you live in to make the most of the resources you have. I'd love to hear your perspectives and additional scenarios that illustrate the differences in Value over Time between Agile and non-Agile approaches.