Agile development: Cheat Sheet

Why it's time to get flexible about IT projects

Agile development eh, shall I dust off the yoga matt?

Don't worry, there are no contortions required, although agile is all about being flexible when it comes to managing IT projects.

Right, so I'll stop limbering up

Thanks, that was quite off-putting. If your business undertakes any IT project then you need to start caring. According to Michael Azoff, principal analyst with Ovum, businesses that ignore the rapid and high quality development promised by agile methodology will struggle to survive - as he puts it, it's a must for organisations to remain competitive.

So what exactly is it?

Agile is designed to overcome the failings of the traditional 'waterfall' approach to IT projects. Under the waterfall method the specifications for a system are drawn up and locked down at the start of the project. The design and coding follow and it is only close to the end of the project that the system is tested, just ahead of it being deployed.

The problem with this rather rigid approach is that by the time the system is delivered many factors may have changed, resulting in the finished system not being fit for purpose. An organisation's needs may have altered, superior technologies may have been developed or the final system may simply fail to deliver what the organisation hoped for. But accommodating changes using the waterfall methodology means drawing up new specs and starting the entire process again. The result: overspend and delay as organisations are forced to alter existing work at a late stage in the project's life.

Ok, that's the waterfall method but tell me what agile does?

Scrum, one of the most common agile approaches, throws away the idea of delivering a finished system in favour of deploying it in chunks. These chunks or iterations will run for two to four weeks, at the end of which the dev team should deliver software that is potentially ready for use. Each software change will be focused on meeting a particular business need. The result is the delivery of regular software updates, rather than the organisation having to wait years for a entire system to be delivered.

And that's better why?

Many reasons. A key benefit is that agile gives end users an ongoing input into software development and allows them to help keep projects on track. A product owner, who knows the business outcomes that the project needs to deliver, is appointed to collaborate with the dev team throughout the project's life.

Upon delivery of each software update the product owner will...