Agile is like ABS

I like analogies, metaphors and similes. They can help transfer understanding from one domain, or concept, to another. Here’s an analogy that I think helps illustrate the pros and cons of a agile software development approach, using an explanation of a popular automotive safety feature: Anti-skid Braking System (ABS).
A common misconception is that a vehicle equipped with ABS will stop more quickly than a vehicle without ABS. This is incorrect. All else being equal, when stopping in a straight line, ABS will necessarily cause the vehicle to take longer to come to a stop, because of the very nature of ABS. When the driver of a vehicle fitted with ABS applies the brakes very hard, a computer will continuously turn the brakes on and off very quickly, such that the wheels continue to turn some of the time and thus do not skid (well, not as much). The driver maintains the ability to steer whilst braking, because he or she can steer during those moments when the brakes are off. Thus you can brake very hard but still steer your way around objects, maintaining control of the vehicle.
Without ABS, when the driver brakes very hard, the wheels would stop turning, causing the wheels to “lock up” and skid, making steering impossible. This is when maximum friction occurs, and hence when the maximum braking force is in effect. So you can stop most quickly without ABS, but you won’t be able to steer and will more than likely lose control of the vehicle and crash. All things considered, it’s better to sacrifice some braking force in order to have control of the vehicle. Hence the popularity of ABS.
I see striking similarities between this and the argument over agile software development methodology. Agile will not make the project go quicker! In fact it might take longer to finish the project (but when exactly you “finish” is contentious). Just as an ABS-equipped vehicle can steer while braking, a project using an agile approach will be—as the name suggests—more agile, maintaining the ability to control the direction of travel. Collectively, the project team can adjust their aim if they have wandered off on a tangent, say for example if the product strays from meeting core objectives. By bringing forward design and iterating quite quickly, the end result of the project can be kept in focus and development can be kept on target (incidentally this is where agile can be very beneficial for UCD and vice versa). Agile allows you to not crash head-long into failure!
However, what an agile approach will not do is shorten your project. It’s annoying when people talk about “adopting agile” in order to “deliver in shorter timeframes”. They’re confusing agility and speed. As far as I’m concerned the only thing being delivered earlier are the early design prototypes. The final deliverable is not necessarily completed any quicker than with a good old fashioned waterfall approach, because during the iterations the design will evolve and some stuff won’t be used (either because it’s taking us off target or because it doesn’t work). In return for your agility, you must accept that there may be wastage or re-work caused by each iteration and that you might not finish any sooner.
What say ye?
[Photo source: DervMan]
Comments
From my understanding Agile is not designed to make delivery of the “complete project quicker”, it’s a customer and business focused value system that recognises (amongst other things):
More here: http://agilemanifesto.org/principles.html
An astute Product Manager could choose to deliver incrementally by initially focusing on components that are stand alone and could be in production much earlier…ergo the notion that Agile helps you deliver earlier.
I think we get too bogged down in the process around Agile and forget that it emerged from a set of principles, where many are closely aligned to HCD principles. Our challenge is finding a way to make it work that embodies the principles and maximises the usability expertise that is available.
BTW found this Agile UX user group that might be worth exploring. Here’s the blurb:
Cheers, Vikki, that’s one of the most thorough responses I’ve ever had.
You are totally right (told you I would say so!). I’m not debating the intentions of Agile, nor its benefits, but rather this post was a response to what I referred to as the common misconception that Agile shortens time-lines. And you’ve shed some light on why this might be the case.
cheers
Pat
Post a comment