Managing Director - Decision Analysis Randal Breaux
From Agile Development to Agile Project Design
Jan 12, 2010
Agile is hot in information technology these days. IT professionals have learned that monolithic computer projects that extend over months and years are extremely unlikely to payoff.
Instead, the new trend is to use "agile development" - a new software design philosophy that promotes more incremental, short-term development mini-projects that over time can add up to big, long-term results. Each short-term "cycle" results in usable code that can be demonstrated or even deployed.
Three key advantages to this approach are a faster feedback cycle, more flexibility to take the program in a different direction in response to changing needs, and (here’s the big one!) faster payoff from investment dollars.
Rather than having to wait for the "big payoff" at the end of a huge monolithic IT project, a smaller project cycle can release at least a small pieces of the big payoff very quickly - building confidence in the project and possibly producing internally-generated funds to sustain the project over time.
The big attraction to agile development is that in practice it actually seems to work. Agile development leads to uncomplicated projects that are easy to evaluate - and with limited objectives that are well-defined, a lot more of them are successful. So agile is building a lot of steam.
What some IT professionals are missing is that agile is a slippery slope; once you start thinking like an agile person, your view of the world necessarily changes. You get a lot more opportunistic; you demand a lot more project accountability, and you become a lot more skeptical of "blue sky" projects seeking to change the world. You start to see the next big-scale project designed to reduce IT expenses as an oxymoron.
The agile virus is thus taking hold not just in the arena of IT development, but it is starting to move up the chain to the project design world as well. Big infrastructure projects with no specific means for generating concrete business value any time soon are getting harder and harder to sell.
Instead, more and more organizations are designing small-scale, incremental projects that target specific business objectives in limited target environments. Instead of "optimizing logistics across our production facilities", they are "reducing work-in-process inventories of steel plating at the Harrison facility."
Why is it that agile development cycles need to add up to big uber-projects at all? High returns on investment can often be had from lots of small, simple projects - even if they are unrelated.
Having some trouble making the mental switch? Here are some quick tips to get you started with agile project design:
- Your objectives should be realized within three months - preferably quicker. If they can’t, then choose fewer objectives and scale them down until you can.
- Your project team should be less than a dozen people. Again, reduce objectives until this works.
- Cross as few organizational chart lines as possible, so approval is fast and easy.
- Capture the IT people you need on the team itself and devote them to the project as completely as possible. The shorter the project duration, the more feasible this is.
- Try to use legacy systems or existing software in the field.
- Avoid making IT development the soul of your project. Produce a working prototype that is fast to design and develop and which can be tweaked easily and often. If you have to roll the prototype up into some other system later - so be it. This is easy if you already have a working and field-tested prototype.