Saturday, August 25, 2007

Online burndown chart generator

One of the aspects of Scrum is its focus on transparency - getting all information out in the open. And one of the areas that enables the transparency is the burndown chart. It's a public posting of the progress of the team throughout its current sprint.

On the horizontal axis you see the days of this sprint. The vertical axis describes the amount of work. At the top of the vertical axis is the number of "ideal man hours" we committed to for this sprint. The straight diagonal line is the "ideal burndown" that we're aiming for. The slightly less straight line is our actual burndown. As you can see this chart is from somewhere during the third week of our four-week sprint and we're slightly above target. But things don't look as desperate as a few days before, thanks to some colleagues getting back from Holidays (which it says in the small scribling that you probably can't read).

As a Scrum master I like to post this information as publicly as I can. So just having it on the wall of our team room isn't good enough, since there are many people that don't visit our team room. Ideally I'd like to have the burndown chart projected on a wall in the central hallway of our office, so everyone can see it first thing they come in in the morning. But as a nice step along the way to this, I chose to publish the chart (and the rest of our product backlog) on our project wiki.

In the first sprints I did this by taking a photograph of the burndown chart every morning, right after updating it. I'd then upload the photo to our wiki. The only problem is... uploading them every day turned out to be too much of a hassle. So the wiki actually only got updated once a week. And that's not good for transparency of course.

So this time around we went searching for a simple tool that would lower the threshold of updating the burndown chart on our wiki. We searched for an extension to MediaWiki that allows you to create a chart by just entering the numbers in your wiki text. That turned out to be quite a challenge. There are many charting and drawing extensions for MediaWiki, but they either didn't do what I wanted or we couldn't get them to work on our wiki.

In the end I just gave up and wrote a simple web page that -when fed with the right parameters- will return a PNG image of the burndown chart. You call the page like this:

  • burndown.jsp?days=1,2,3,6,7,8,9,10,13,14&work=200,170,165,150,125,95
And the page will return the following image:
So the days parameter indicates the day numbers shown on the bottom. I entered all of them for the entire sprint right away. The work parameter is the work remaining. I just entered the values that I know, which is why the green line stops halfway through.

The generated chart is really simple and not very pretty. But it is very easy to keep up to date and that's what counts most. I just add the remaining hours at the end of the URL every morning... and that's it.

Although I consider this generator a stop gap solution until I find something better, I imagine it might also be useful to other budding Scrum masters. For that reason I've put the page online for public use at http://apps.vanpuffelen.net/charts/burndown.jsp. Just click the link and you'll get some usage examples.

Let me know if this generator is useful to you in the comments section. Also let me know if there's something wrong with it and I'll do my best to fix it.

Update (January 1st, 2010): in my company we've created a custom version of this same tool and used that in many projects over the last few years. This public burndown generator has drawn over 60.000 charts in 2009 alone, so apparently we're not the only ones who use burndown charts. That's why I've now updated the tool with the best features that we've added over time at my company. Check the latest version on http://apps.vanpuffelen.net/charts/burndown.jsp for all the features and let me know what you think of them.

25 comments:

Arnout said...

I like it! However, I noticed that you determine the vertical scale based on the first Y value. If additional stories are added later on, some data points disappear off the top of the chart.

On a related note, I recently came across the notion of "burn up" charts. I like it.

Frank van Puffelen said...

Hi Arnout,

I fixed the problem you pointed out.

The burn up chart looks interesting. If someone needs such charts, I'll gladly create a generator for them.

Frank

Mathias Biilmann said...

Great generator, I'll be using this daily to let a team member working from home know how the burndown chart is looking. Thanks for making it available!

Frank van Puffelen said...

Hi Mathias,

Thanks for the positive feedback. It's good to see that more people find this tool useful.

Let me know if there's anything you'd like to see different or enhanced about the charts.

Frank

Mozammel said...

Nice tool! Thanks for sharing. I'm planning to blog about it on my blog: A Scrum Master's Blog

Frank said...

Good to hear that my burndown chart generator is still useful. We have moved on to a version that more easily integrates with our wiki, but with a very similar "API".

Just wait til you see the newest scrum tool that we've been working on. It's not yet ready for public usage, but it will be announced right here on this blog when it is.

Marco said...

Great tool! We use it on our wiki for our remote team members. One question: could you publish the source so that we can host the jsp on our own server?

Frank said...

Hi Marco,

You can find the code for the burndown generator here. It's really simple as it was just meant to fill a need at the time. Let me know if it works on your server.

Frank

bflorat said...

Exactly what I was looking for (KISS principle), thanks for this.

bbossola said...

Nice and beautiful! Thanks a lot!

Bob Hartman said...

I recently did a series of posts on burndown charts that hide the truth. A roundup of all of the posts is also available. In those postings I used Excel to generate the charts, but yours are quite a bit nicer. I may start using them in the future.

One thing that would be nice is to be able to lable the axes and the chart itself. I like to know what is being measured and what chart I'm looking at, but maybe I'm just different that way.

Frank said...

Thanks for the feedback Bob.

I suspect that once I add the label feature, the next request will be to be able to set the font+size. :-)

I've been considering adding labels to the axes, but so far have been able to get away with just describing them in the HTML around the chart.

Your posts on lying in burndown charts are interesting for sure. It's true that it's easy to just use the burndown to communicate effort instead of progress. But I'm not sure communicating finished story points would work well for my company, where teams are normally small and sprints are relatively short.

When communicating progress across multiple sprints we always use burnup charts, which indeed show scope change nicely as you also document. But within the sprint we're still using burndowns and "scope change annotations" in the surrounding text.

Scrum Software said...

Wow, pretty impressive little tool here.. I am glad to hear that your company has utilized it for many of your projects.. very cool. For me, it is sort of difficult to use this type of burn down chart when there are free or very affordable alternatives around these days for scrum development.

You should give Axosoft's OnTime 30 day team trial.. They also have a free 1 user license. It has more than just a burn down chart..

Let me know what you think of it or if you still prefer your burn down generating method.

Best of luck.

Jean said...
This comment has been removed by the author.
Jean said...

I like this.

I tried it for a personal project and it works.

Simple and to the point.

I find this solution and the burndown-charts are the best on the web right now.

Frank said...

Thanks for the compliment. I must admit that burndown-charts.com looks pretty impressive. But I am happy that my simple generator is still being used so actively by people such as yourself: all together we generated 140K burndown charts with it last year!

gin said...

Thanks for this tool, still works fine after all these years:)
I'd have one question: our process is such that the "available hours" (calculated during the sprint planning) is where the ideal line starts at the left-top corner; whereas the remaining hours plot starts lower than that (unless we're over-allocating). Our current tool supports this setup, but I'm curious in what do you think of this? should this be supported by generators like this?

Frank said...

Hey gin, thanks for the feedback and the feature request.

I must admit I'm not a fan of complicating basic Scrum and thus have never had a need to separate the available hours from the committed work. But if your projects require it, now you can model them in my online burndown chart generator.

I added a max_work parameter that should do what you want. Try it here: http://apps.vanpuffelen.net/charts/burndown.jsp?days=17,18,19,22,23,24,25,26,29,30&max_work=140&work=125,112,104,99,95 . Let me know if it works for your needs.

Frank

Tony D said...

Imitation is the sincerest form of flattery.

Another clone at http://www.conceptuel.co.uk/burnDown

Frank said...

Nice find Tony.

I'll soon have to start advertising my burndown chart generator as the oldest of its kind. ;-)

srinicycling said...

Anyway the size of the graph can be altered ?

Frank said...

Yup. To specify the width, just add a width parameter to the query string. Similarly adding a height parameter allows you to specify the height.. E.g. http://apps.vanpuffelen.net/charts/burndown.jsp?days=1,2,3,4,5&work=35,27,22&work=20,15,12&work=15,12,10&colors=0&width=800&height=600.

srinicycling said...

Thanks Frank..

Patrick Gmelch said...

just had to check in to say I friggin love your tool and use it regularly for university projects as well as at work!

how about making it open source? I would love to see some more usability and more options in general

either way, thanks a lot, I owe you a beer or two

Frank said...

Thanks Patrick. I can't believe it's been almost a decade since I put this up. :-)

The code is available here: http://apps.vanpuffelen.net/charts/burndown.jsp.txt