November 17 2009

How to Create a Burndown Chart

A burndown chart is an excellent way of tracking the project status in an iterative software development environment.

Here are the steps for creating your own burndown chart:

  1. Capture user stories.
  2. Assign high-level effort estimates to the user stories.
  3. Organize and prioratize the user stories into iterations.
  4. Break each user story up into tasks.
  5. Create your your burndown chart.

1. Capture user stories

First off, you’ll have to work with the stakeholders to capture the business requirements of the project in the form of user stories. User stories are a great way of capturing requirements because they allow the stakeholders to express their requirements in non-technical business language. An example of a user story would be:

The ability for customers to purchase widgets on-line using their credit card.

Work with your stakeholders to prioritize each user story. Label each user story in sequence using numbers.

2. Assign high-level effort estimates to the user stories

Work with your developers to assign high-level estimates against each user story.

3. Organize and prioritize the user stories into iterations

Organize your user stories into iterations. Our iterations will be 30 days in duration (about one calendar month). In this example, we’ll aim to have approximately 40 days of work within each iteration.

4. Break each user story up into tasks

Now it’s time to work with your developers to break each user story up into tasks and apply effort estimates to each task. It’s most likely that your effort estimates at the task level will not match the effort estimates at the user story level. This is okay, the user story estimates were used to roughly divide the work into iterations. These new task-level estimates are more accurate.

5. Create the burndown chart

Now add up the effort for all the tasks in your iteration. Also, take a look at a calendar and add up all the working days you have during the duration of your iteration. Recall that our iteration is 30 days, however not all of those days are working days due to weekends and holidays.

At the end up this step you’ll have two numbers:

Work (effort): 43 days

Time: 20 working days

Now it’s time to start creating your burndown chart. On the Y-axis we’ll place our work remaining in days. On the X-axis we’ll place our time remaining in days. Each day we’ll track our progress by placing a dot in the appropriate place. Once a task is complete, we can remove it from our task list and reduce the amount of work remaining.

You’ll notice we’re not tracking a % complete. A task is either complete or not complete. This eliminates the problem of tasks getting stuck at 90% complete forever.

Meet with your team each morning to update the burndown chart.

A burndown chart will quickly show whether or not you’re on track or behind schedule. If you’re plotting above the line you’re behind schedule. If you’re plotting below the line you’re ahead of schedule. This allows you to accurately report project status and allows you to identify potential schedule problems quickly.