Why have Agile methodologies (including DevOps, which adds agile deployment to Agile development) made such inroads in IT? Why is OODA (observe, orient, decide, act) so important for business strategists?

Agile/DevOps is OODA applied to application development; OODA depends on business agility, applying many of its core concepts to external threats and opportunities.

It starts with the gunnery problem. In case you aren’t familiar with it …

You’re shipboard. You man an anti-aircraft gun. The shells you fire have an initial muzzle velocity of around 2,500 feet per second, decelerating due to gravity as they ascend toward the aircraft you’re shooting at.

The aircraft is a bomber. It flies at something less than 1,000 feet per second. Being a math whiz you can project exactly where the bomber will be when your shell reaches its altitude, allowing you to aim at the exact spot in the bomber’s trajectory where your shell and the bomber would attempt to occupy the same space at the same time.

But, the bomber is piloted by someone who, all things considered, would prefer that their aircraft’s trajectory and that of your shell don’t intersect, and so they don’t just fly in a straight line.

In application development terms, by the time your shell reaches the target’s altitude, the requirements will have changed.

Why Agile? So IT can deliver the software needed to support business changes (where you aim) in time for the planned change to still be relevant to the business’s new situation (before changes in the bomber’s flight path make your aim wrong).

Why OODA? Same answer: The attacking plane is a competitor, or the overall marketplace, or some important change in circumstances that will affect your business.

Your planned actions have to still be relevant when they “reach the attacker’s altitude” … when the changes you anticipate become real, recognizing that the more time that elapses the less predictable the future (the bomber’s position) is.

See, there’s a reason we’ve settled on the term “Agile” instead of “Fast,” which is that depending on what you mean by “fast,” waterfall is much faster than Agile, as was pointed out a few months ago in this space. It’s faster in that, assuming you have a useful way to measure software functionality, waterfall generally delivers more of it in a unit of time than Agile or DevOps.

But, waterfall delivers it all at the end of a long trajectory, during which business circumstances might change and change again. Waterfall design and development have a lot in common with a gunner shooting a slow, heavy shell that packs a lot of explosives at the spot a bomber would be in were it to continue flying in a straight line.

It’s a big bang that misses the target: Waterfall’s fixed requirements and specifications and need to develop and deliver the whole system in one piece conspire to deliver results that are largely irrelevant when delivered.

Pushing the analogy to the limits, Agile, and even more so DevOps, is less like a shell than a surface-to-air missile. They’re able to track changes to the target’s trajectory and adjust course accordingly.

Waterfall still has its adherents. Their near-universal explanation of waterfall’s high failure rate is that business people “don’t know what they want,” which presupposes there’s a way for them to know the answer to the question, “What do you want the software to do?”

Someone once studied people who design and build their own houses. Turns out, they’re rarely satisfied with the first one they live in. Generally, they aren’t satisfied with their second try, either.

If it takes three tries to design the house you want, keeping in mind that living in a house isn’t exactly terra incognita for most people, expecting a business manager to know in advance exactly how a piece of software should behave is several percentage points less than realistic.

And that’s starting with the false assumption that “What do you want the software to do?” is the right question to ask. It isn’t. A far better question is, “How do you want to run your part of the business differently and better?”

Even when IT asks the right question, the fundamental difference between the past and the future still intervenes. Presumably you know what this difference is: You can, in principle, get a pretty good handle on what’s already happened.

The future isn’t like that.

Metrics seems like such a good idea. If you can’t measure, after all, you can’t manage, or so Peter Drucker asserted a long time ago. He’d be horrified at how this dictum has been misapplied.

Drucker was talking about business processes, where if you can’t measure you really can’t know when something has broken down and needs attention. That’s the proper scope of Drucker’s Metrics Dictum. It applies to business processes. Too many business managers think it applies to everything.

We’ve been talking about DevOps, whose name comes for the inclusion of Ops members in Dev teams, but whose most interesting characteristic is that it replaces waterfall’s big-bang deployments, and even Agile’s large-scale releases, with a continuous stream of small deployments that are subjected to automated testing and then automatically promoted to production without so much as a rubber stamp from a Change Advisory Board.

The metrics question of the day: Do Agile and DevOps speed things up?

The answer is that there is no easy answer. To understand the challenge, answer this question instead: Which is faster, the Internet or a truck?

Figure the truck has a 4,000 cubic foot capacity. You fill it with SanDisks, each holding 64GB of data. The truck drives 1,000 miles at an average of 50 mph. If I’ve done my arithmetic right, the truck delivers more than 35 million terabits of data in 20 hours, yielding a bandwidth of just under 500 terabits per second.

Imagine your MPLS monthly bill for that kind of bandwidth. The truck wins by, you’ll pardon the expression, a mile.

Fortunately, network engineers recognize that bandwidth only tells half the speed story. The other critical network metric is latency. Here, the truck doesn’t fare so well. The first data packet doesn’t arrive until 20 hours after it’s transmitted, compared to a typical Internet ping of maybe 15 milliseconds.

So which is faster, the Internet or the truck? Answer: It depends on what you need more, high bandwidth or short latency.

Waterfall methodologies are the trucks of application development. They deliver a truckload of software features in one big delivery. The business waits for six months or more before anything goes into production, but when the wait is over it gets a lot of new functionality all at once.

Agile methodologies, and DevOps even more so, are the Internet of app dev, delivering new functionality more frequently but in smaller increments.

Where the metaphor breaks down is that with our truck vs Internet comparison we had a useful standard unit of data delivery – the bit.

Comparing app dev methodologies, we don’t. For a while we had function points, but they never really caught on, mostly because they’re too durned complicated to properly count. Also, they’re useless for Agile because function point analysis has deep connections to waterfall’s up-front specifications, which is one reason Agile replaced them with user stories and story points (estimated degree of difficulty).

So trying to compare waterfall and Agile for the speed of software delivery just isn’t going to happen in any reliable way. Even comparing Agile and DevOps is dicey. Agile delivers user stories weighted by story points. Increasingly, DevOps delivers microservices, not full user stories.

Try to apply Drucker’s Metrics Dictum to application development and you’ll find you’re trying to answer the question (to change metaphors mid-stream): Which is better for beating the other team — a great passing game, or the knuckleball?

And oh, by the way, these things have strong connections to the type of business change you need to achieve. Standard Agile practices are just the ticket when your goal is continuous improvement. Waterfall actually can work well, assuming you’re implementing a new business process you’re able to specify with precision and that will still be relevant when the multi-year initiative wraps up.

When designing a good metric turns into an intellectual quagmire, the problem is probably that we’re asking the wrong question. IT’s goal isn’t software delivery, after all. It’s supporting the achievement of intentional business change.

That being the case, what we should be looking at is whether, for a given desired business change, IT’s app dev methodology is a major source of friction.

Increasingly, business leaders care more about the organization’s ability to change direction quickly to address threats and pursue opportunities, and less about organizing and implementing large-scale strategic change.

With this change in the style of business change there’s no longer much doubt. The Agile/DevOps spectrum of methodologies is far more likely to keep IT from being sand in the company’s gears of progress.