Gantt Charts!

Plan for success.

Introduction

A Gantt chart is an effective means to help you plan and schedule the activities required to complete a project and to keep on track of how they are progressing. Used well it can dramatically improve your project management capabilities on both yoru current and future projects.

It is normal to overestimate how much time you have and underestimate how much work there is to do in completing a project. This can lead to mad rushes towards the end with poorly completed work as a result. A Gantt chart, used properly, is a powerful means to overcome this.

Gantt Charts

A Gantt chart is effectively a horizontal bar chart with tasks listed down the side and time units listed along the top. You then mark off when you plan to work on particular tasks (the blue bars below). When you actually work on tasks you also mark this off on the chart (the green bars below) which allows you to compare your actual progress to your planned progress to see how you are going.

Gantt Chart demo

The arrows indicate dependencies. Dependencies indicate that a particular task cannot begin until certain criteria are met (usually the completion of another task). Dependencies are nice to have for complex projects but for simpler projects you can get away without putting them in.

In the diagram above, the first arrow indicates that the task Implementing can begin just before Purchasing of hardware is completed.

We can use dependencies to work out the critical path. The critical path allows you to work out the minimum time required to complete the project and which tasks have to be completed (on time) for this to occur. Any delays in completing any tasks on the critical path will result in the completion date for the project being pushed back. Events not on the critical path may take longer and not necessarily affect the project completion date.

Let's look at an example:

We are working on a project and we have broken it down into the following tasks:

Task Duration (weeks)
Interviewing employees 3
Create requirements document
(This can begin two weeks into the interviewing task)
2
Create prototype
(This will begin once the requirments document is completed)
4
Build and test final product
(This will begin once the prototype is completed)
3

If we translate this into a Gantt chart it will look like the following:

Gantt Chart problem

Taking into account the dependencies we can now work out that it will take 11 weeks if all goes smoothly to complete the project.

This is just a simple example, and sure you could have just worked it out in your head, but for more complex projects, Gantt charts are usually the most effective way to visualise the task flow and calculate the critical path.

If you're a student doing a computing subject (such as Software Design and Development, Enterprise Computing or Software Engineering) it is common to get a question around project management where you have to work out the critical path. Practice sketching out simple Gantt charts like this so that you can quickly and easily knock one out in an exam. Don't try and do it in your head which is prone to making silly mistakes.

CASE Tools

When working on a larger project it is common to make use of software to help you organise your work. CASE (Computer Aided Software Engineering) Tools are used and one of them is software to help you create and manage a Gantt chart. These tools allow you to do quite complex things with your Gantt Chart.

One of the main features that these tools offer is task dependencies and automated rescheduling. Maybe you have two tasks as part of your project:

  • Migrate all users to the new account management system
  • Recalibrate the calendar module to automatically add events to user calendars

This particular feature on the calendar module relies on features that are in the new account management system but not in the old one so it can't be done until the first task is completed. That is to say task 2 starting is dependent upon task 1 being completed. We can indicate this dependency on the Gantt Chart and then in the event that migrating users happens to take longer than planned the software will automatically push back the 2nd task accordingly.

These tools also tend to offer many other useful features such as:

  • Breaking tasks down into sub tasks
  • Integration with other CASE tools for document management and collaboration (chat, email, forums, issue tracking etc
  • Reporting to get detailed analysis of project progress
  • The ability to delegate tasks to people and keep track of who's working on what
  • Different access levels (eg, clients can view only, developers can update progress on assigned tasks, managers can add and assign tasks etc)

A Gantt Chart in a Spreadsheet

The software discussed in the previous section is powerful and effective but it can take time to learn how to use and set up and most products also costs money. If it's a smaller project you're working on (eg. a school project), it may not be worth the hassle.

Also called the poor mans Gantt chart you can rig up a quite effective and useful Gantt chart in a spreadsheet. These can be even more effective nowadays with online, easily shareable spreadsheets. Let's look at how one might be set up.

Gantt Chart spreadsheet

A few points to note:

  • Green bars indicate the planned schedule. Orange bars are the actual time it took.
  • The Status is using data validation so that the possible values can be selected from a drop down.
  • The Status is also coloured automatically using conditional formatting.
  • The bars for planned and actual work are created by setting the background colour of the cells.
  • The formula for cell b17 is =COUNTIF(B2:B14, "Completed")
  • The formula for cell b19 is =COUNTA(B2:B14) - B17
  • The formula for cell c17 is =B17/counta(B2:B14) formatted as '%'
  • The formula for cell c19 is =B19/counta(B2:B14) formatted as '%'

One of the good things about a spreadsheet is that we have the flexibility to put it together however we like. The demonstration above is the way I like to do things but you are free to tweak it to suit you and your needs / project. With a bit of creativity I'm sure you can improve upon this basic template.

Ensure you take the time to format it neatly. Charts like this are designed to make important information obvious and easy to see. This only happens if the data is easy to interpret and you need elegant formatting for that.

Effective Usage

Like many aspects of software engineering, just doing something is not enough, you have to do it well for it to be effective. Gantt charts are no different in this regard so let's look at some best practice to ensure you get the most benefit out of them.

The right tasks

It's easy to just put down the main deliverables for your project, however you often need more tasks than this. If the Gantt chart is to be effective then it needs to consider all the things you need to do which probably includes tasks related to your deliverables such as research, testing etc. It may also be useful to break some of the larger deliverables down into smaller tasks. Often these ancilliary tasks and sub tasks take up a greater percentage of our overall time than we anticipate and so if we don't accommodate them in our Gantt chart we will not be able to plan our time as effectively as we could do.

Up to date

Often it is easy to create the Gantt chart up front but difficult to keep it up to date as you work on things. A lot of the value is in seeing a constant picture of how you are progressing as you go so you stay on track. If your work is spread out evenly over the allocated time rather than a mad rush towards the end then the quality of your work will be much higher.

Despite many students claiming to be the exception to this rule, I am yet to see a students work which has convinced me to believe they are in fact the exception.

Neatly displayed

If you are using a specialised program then this should happen automatically but if you are using a spreadsheet then take the time to format it cleanly and neatly. You need to be able to glance at the Gantt chart and see the details consisely and this will only happen if it is formatted appropriately. Again you may say this doesn't matter but you are kidding yourself.

Think about the following things:

  • Have you used effective colours?
  • Have you used cell borders effectively?
  • Is the chosen font/ font size/ font weight making the right elements stand out?
  • Have you sized your cells appropriately?

Any plan is better than no plan

The initial plan you put together will not be perfectly accurate. Even professional project mangaers with years of experience never get it quite right. That is ok because it will still give you an overview of the work that needs to be done and help you spread the work out more effectively. After each project you will also have a record of how you actually went and you can use this to help calibrate your plans for future projects.

Don't procrastinate and worry about getting the plan perfect before moving on. It will clean itself up as you go and start getting the actual times in.

Plan of attack

Putting together your Gantt chart can be difficult, especially the first few times you do one. Here's a plan of attack to help you put together your Gantt chart:

Step 1: Pick how you're going to manage your Gantt chart. Will you use specialised software? Or a spreadsheet? If you're going to use a spreadsheet then set it up with the headings along the top and work out what details you want in it.

Step 2: Set up your columns for the time frame and work out what units you want your Gantt chart to be in. Do you want fine detail (eg. daily) or coarse detail (eg. weekly)?

Step 3: List the major tasks, or milestones, down the left hand side. After you have done this, think about what other tasks will be needed to help you reach those and add those in too in the relevant places. Think about ancilliary tasks such as research and checking documents that you want to make sure to plan for. Here is a list of common ancilliary tasks you may want to consider including:

  • Research
  • Testing
  • Build prototype
  • Check over documents
  • Learn how to ...
  • Rehearse presentation

Step 4: Now you need to plan when each task will be and how long it should take. This is the most difficult step. A good strategy is to start from the beginning and end and work inwards. The first and last tasks are generally obvious and help you to get things in place. Your initial ideas on timings will probably be wrong. Typically you will start putting in the timings for tasks and find you're up to the due date and have only accounted for 70% of the tasks. That's ok because then you go back and shorten things until it fits.

At any one of these stages you may realise you've missed something from a previous stage. eg. you may be adding in the timings on tasks and realise you've missed a task. Don't hesitate to go back and ammend details and don't feel you have to get a step completely finished and perfect before moving to the next in building your Gantt chart.

History and Background

Gantt charts are named after their creator, Henry Gantt. He initially started using them sometime around 1910 - 1915 though there are examples of similar techniques being used to track projects by various people before this. Gantt charts became popular during World War 1 and were used by the American army.

Gantt charts were originally drawn on paper and would have to be redrawn every time they needed updating. This was tedious and time consuming so people came up with creative ways to make them more adaptable. These included using sticky bits of paper that could be shuffled around or replaced and making the chart out of Lego. With the advent of computers and specialised software, managing Gantt charts became much easier and their use exploded. Nowadays they are used by many people including:

  • Project managers
  • Event organisers
  • Project teams
  • Students working on projects
  • Engineers
  • Just about anyone working in IT
  • Manufacturing
  • Construction
  • Anyone working on a project of a large enough scale

The big picture

A Gantt chart is a support tool. It will guide all the work you do. As such, it needs to be created at the beginning of your project and continually updated and referred to throughout the project.

A well put together and maintained Gantt chart makes it easy to see:

  • What tasks are required
  • That those tasks are spread out effectively over the allocated time.
  • The interrelationships between tasks
  • How long the project will take
  • Who is working on each task
  • If you are on schedule or not
  • What still needs to be done and how much time is left.

and as such, if used well, will greatly improve the performance of you / your team and the final outcome of your project. Don't underestimate the power and effectiveness of a well used Gantt chart.

Summary

Vertical Axis
The tasks to be done.
Horizontal Axis
The time units in which tasks will be done.
Bars
Outline when work will be done / has been done.
Dependencies
Tasks what can't begin until certain criteria (usually the completion of another task) have been met.
Critical path
The tasks, taking into account dependencies, which dictate the shortest possible time in which the project may be completed.