Okay. I admit it. I’m not a big fan of burndown charts for tracking software release progress. You can flip them over and call them burnup charts but I’m still not a believer. Here’s why.
The burndown chart has an end goal. That goal is total user story points expected to be delivered for the software release or sprint. At the sprint level, the chart makes sense. Total story points for the sprint should rarely, if ever, change. Once the team has committed to a set of stories for the next sprint, the total number of story points being delivered is fixed — barring unusual circumstances.
Day-by-day the Scrum team can track story points delivered versus story points remaining. At a glance, anyone can get an idea of how much work has been done and how much work remains to be done.
At the software release level, it’s more complex. The total number of story points for a release is rarely a fixed goal — it varies over time. It’s perfectly acceptable for a Scrum team to add or subtract story points during the release cycle as new information becomes available.
Stories may be added or removed. Story points for any given story may increase or decrease prior to the target sprint.
The result is a moving target.
If 100 story points are defined for a release and 50 story points have been delivered, is the team 50% done? At a moment is time, the answer is yes. What if 10 story points are added tomorrow? Suddenly the team is 45% done not 50%.
For that reason, burndown charts serve as an informative look back at the status of a software project. They also help track velocity, which is the best predictor of the Scrum team’s future performance. However, they are a misleading indicator of when the release will be done unless the business agrees to lock down the release backlog — something I would not expect or endorse as it would be anti-agile.
If you’re a fan of burndown charts, there’s no reason to stop using them. You simply need to understand the information being conveyed and how to use it. They represent a statistical tracking tool for agile software development teams, not a project management tool.