Agile software development is often criticized for lack of detailed plans and associated control points. Many managers would like to see gantt charts for agile projects containing carefully laid out tasks and deliverables.
Yes, the gantt chart is the ultimate project planning tool. Why? Because it offers the illusion of control.
Have you ever taken a close look at the typical project gantt chart? I have looked at many. Let me explain how gantt charts are supposed to be created and used.
The chart begins with a list of activities. The activities are broken down into tasks. The tasks are given a duration and assigned to people. That’s the simple part.
Now you have to determine dependencies. Some activities/tasks must be completed before others can begin. Some activities/tasks can begin anytime but cannot be completed before another activity/task finishes.
Dependencies can be complex and multifaceted. A good gantt chart needs to track many of them.
If the gantt chart doesn’t define the interdependencies among all the activities/tasks, it becomes nothing more than a task list. What will happen to the project in this case? Activities will languish as they wait for something else to complete. Team members will end up sitting around waiting, unable to begin their next task. The schedule will slip.
I was involved in a large project one time where the Vice President of R&D created a large gantt chart and posted it on a wall in his office. It was impressive, containing dozens of activities broken down into tasks with associated task owners.
Anyone looking at it had to be impressed — except me. I studied the chart in detail and quickly realized that many dependencies were missing. There was simply no way the project would meet it’s deadline, and it didn’t.
This is one of the fundamental problems with the waterfall model and it’s focus on the production of many, complex documents and charts. Vast quantities of documentation give the illusion of control. It looks like people are working hard and getting things done — and they are!
Unfortunately, missing details, such as the dependencies on a gantt chart, almost inevitably suck the life out of the project. Late delivery, cost overruns and defective software are the inevitable results.
Agile software development addresses these problems by focusing on delivering software not documentation. I’m not suggesting that you should stop writing documents. Just don’t make them the focus of the project.