January 31, 2008

Ditch the GANTT charts, become Agile

Ever wonder why most software development projects get delayed? Perhaps its the way they are managed? According to the proponents of Agile, the time has come to ditch 'ye olde' sequential waterfall approach (see GANTT chart sample below) for a more collaborative and responsive methodology, based on software iterations.

This stuff's not only for software developers but could help any one who is in a project management role. I asked Aaron Farr, co-founder of Jade Tower and a regular attendee of Web Wednesday Hong Kong, to explain the difference in layman's terms:

"Traditionally software has been developed in a "waterfall" approach; that is, there are distinct phases of development such as upfront design, implementation programming, quality testing, and so on. These phases are expected to be done in order and done to completion before starting the next phase.

Agile software development rejects this approach in favor of a more lightweight process focused on doing all of these phases simultaneously over rather short iterations (ranging from a week to a month). So rather than do a big up front design and specification phase, Agile methods propose working on small, incremental features, designing, developing and testing them all within a single iteration. This allows a more "agile" approach to changing specifications and a focus on early productivity and consistent, constant results."

Want more of Aaron's insights? Then visit his blog, Cubicle Muses.

So now that you're ready to embark on a new direction in software development and want to learn from
one of the original signers of the Agile Manifesto, come join the folks at ThoughtWorks who are flying Martin Fowler, well-known author and software architect, into Hong Kong for a casual Question & Answer session starting at 6:30 p.m. on Tuesday 5th February at Le Rideau Theatre Cafe, 1st Floor, Hilltop Plaza, 49 Hollywood Road, SOHO, Central (Tel: 2850 8833). You can either sign up on the Agile Hong Kong website, or confirm your attendance on the Facebook event. If you can't make it, you can also post any questions you may have to their discussion board.

Martin, pictured above, has written some influential software engineering books one Agile methods, object oriented programming, software design patterns and refactoring.
You can read his personal blog here. He is also the chief scientist at ThoughtWorks, a global software consultancy that adheres to Agile methods in their work. (For those Brits amongst you, he is not to be confused with Martin Fowler, a fictional character from the popular UK TV drama, East Enders).


john said...

Great post. Agile development is definitely becoming a new standard. However, I wouldn't go so far as to say we should ditch the Gantt charts. But they definitely need to be rethought.

We've used agile development to build web-based project management software called Intervals. We started out with the same ideals; let's throw out the Gantt chart. But we are finding that it does have some uses (timeline visualization, for one) and are in the middle of redefining the Gantt chart. We hope to have a lightweight version online soon.

Your insight will be valuable as we progress in this direction.

Gantt Charting said...

Agile projects really end up being series of smaller 30 day or 6 week scrums. Each of which, essentially, is a project. Too many people seem to use Agile methodologies to justify Laissez-faire management techniques.

In the end, developers hate being managed, and Peter Principled managers who came from the development world will certainly stand up for their brethren with the "we'll get done what we get done when it gets done" siren song of Agile Development.

But, in the end, if you can't tell how long something's going to take, and you don't track how long it really took then you don't get better at making accurate estimates.

Now, otoh, I absolutely detest the concept of a project office mandating that you are "done with design" or "done with requirements" just because you've started the "next phase" of the SDLC.

So, the answer? You have to have some structure, or your developers will walk all over you. But you can't have TOO much structure, or your developers will walk OUT on you.

Rex Chung said...

The length of an agile project should still be estimated up front by story card units. A story card is a description of a small functionality together with testing requirements. Then the progress of the project is a measure of how many story cards were completed after each iteration. From that, we can calculate a velocity (speed of story cards being completed) and will be able to project the completion date and see how well the developers can estimate the tasks.