September 11, 2009

Promoting Value with Agile Development

We’ve looked at a variety of software development processes over the years we’ve been creating custom software, including Waterfall, spiral processes (eg, RUP) and of course Agile. I find Agile particularly interesting because it is so heavily focused on value. Here’s how it works. Imagine a factory producing a widget. It’s well understood that as the factory manager, you’d like to keep you inventory down and deliver raw materials just in time. Agile functions in a similar manner in the software world. By promising to deliver frequently, involving stakeholder feedback and constantly reducing risk, it is much easier to use Agile to guide you to delivering something of the highest value as quickly as possible. In effect you are reducing your inventory by keeping your feature list very focused and not implementing things that you really don’t need. This is how the focus on value works.

Looking back to our post on the 4 dials exercise, Agile really is saying that you don’t have much flexibility with the date due to both cost and competitive factors. The date is a major factor in determining cost. If you’re spending dollars on a big team, then every day is expensive.  By fixing the date and delivering as much quality code as possible by that date, you force yourself to prioritize your huge list of features that you think you really must have but probably do not really need. And that is a good thing.