Burndown Graph Protocol

From Open Source Ecology
Jump to: navigation, search


See instructions at OSEDev#I_want_to_add_a_new_product_burn_down_chart



OSE needs a reliable way to track individual module burndown and the burndown of the entire GVCS.

Let's start first with individual module burndown.

A Development Spreadsheet, such as the 3D Printer- [1] - can be parsed for its last column, which is the level of completion. This parsing can occur daily, and a burndown graph displaying percentage of completion as a function of time can be generated. If the script runs automatically, the burndown would get updated automatically. This graph could be embedded in the wiki. An automated script for doing this should be written so that a burndown graph for any module can be displayed.

The idea is to use cloud editable docs, such as Google Spreadsheets - so that item completion and filling in the completion level leads to an automatic updating of the burndown graph. A template script for doing this is needed so this script can be applied to any spreadsheet.

The idea is that work product is documented in the Development Spreadsheet in a cloud editable fashion, and this process can scale to a worldwide contributor pool.

There are various ways to create burndown graphs in different development processes, but we are looking for a way that simply uses cloud spreadsheets, and generates burndown graphs from them.

Note that the generation of burndown graphs provides status reporting as part of our Roadmap#Open Source Product Development Method - Roadmap.

Discussion Log


Hi Marcin,

i think i could write that script alone, but i don't know how fast. When you need it? First solution that pops in my head consists of tree scripts:

  • first for daily (set via CRON) parsing spreadsheets and saving data to database
  • second for displaying graph.
  • third as administration for configuration, there you need add links to spreadsheets for parsing (maybe another configuration options)

Maybe there is another approach:

  • use as database another spreadsheet, but i think this would not scale for long time graphs
  • then generate graphs from that spreadsheet. But i'm not familiar with google docs possibilities. You know more about this.

If we evaluate the above options - the main question is - which is scalable? And which is accessible to individuals, not admins?

The best idea would be to use external databases - otherwise regular users won't be able to set up new burndowns.

We want to make this tool able to be set up with people without admin permission. I think that it's acceptable that someone creates burndown via their own spreadsheets from their own drive. this makes it scalable. Right now we use Google Slides embedded - this is completely scalable because others can use their own Google Slides and embed in wiki.

So the consideration is how to make it easiest even for novices to set up burndowns: this will allow the project to scale in contributions without limit.

But i need you to explain me few things for spreadsheets:

  1. You need make that total from all list of that spreadsheet? Separately (dev:22%, process mgmt: 0%)? Together? Or just that with "total line" at bottom?

It's just numbers summed divided by the number of lines times ten. Just a percent calculator, assuming 0-10 completion on each item.

  1. In that linked 3D Printer spreadsheet on first tab there are some lines without numbers in first columns. Why?

Just in progress work, I kept adding and rearranging. Need they be counted to burn-down? Is possible to add numbers there? Yes, just clone the spreadsheet - and then you can clean it up to edit. But just do a sample sheet for now - just use ours, and make changes to it as you like. Is that number order somehow relevant? Do you want to add and also remove lines in spreadsheet trough time? It will change through time, so the scripts need to be documented so we can do basic script modification.

  1. The formula for total is count as =sum(D2:D36)/330 - what that 330 mean? Is it mistake? Because it is not 10*<numbered rows>

It was created when there were 33 items. For me simplest solution is that i count only lines with number in first row and for that formula i use count of this numbered lines.

I also have some question about graphs:

  1. do you have any preference of that graph type? I think linechart (https://google-developers.appspot.com/chart/interactive/docs/gallery/linechart) or areachart https://google-developers.appspot.com/chart/interactive/docs/gallery/areachart are ok.

Area is good. it looks better.

  1. please describe what you want to display on axis and in main area of that graph. For example on x axis you want day count or dates?

I would do the date - so that if there is a long period of inactivity, the graph doesn't stretch out too long. What do you think?

Do you want some deathline there?

No, just show progress. My thinking is - do a basic implementation. Once we have basic documented code - we can make changes, right? So try to make it as modular as possible.

Or ideal burn-down line?

There should be, but it won't if we do it by date on the x axis. Multiple lines in one graph? See https://www.google.sk/search?q=burn+down+chart&tbm=isch for reference.

That would be nice if we have one machine, with many modules - all modules are represented on the page, so we could see which ones are lagging.

3. where and how you want to embed that graphs?

On wiki pages using HTML embed codes. Like graphs from google spreadsheets can be embedded. For example, the graph http://opensourceecology.org/gvcs/ is an embedded google spreadsheet graph, which we change manually - no script, but it is cloud editable and changes automatically when we update it.

4. how you want to display long time graphs? I mean how you want display graph for 10 days, for 10 months, for 2 years?

I think this is addressed in using the dates. One data point per day. So with time, the graph either freezes (when there is no new progress) or it keeps changing for ever - which means that the dates will become tighter? I can't picture this in my mind without seeing how it will really look.

Maybe the way to solve this would be to have a background of an ideal graph in shaded color - and when it gets completed, it gets darker. Too late for me, I stayed up all night, gotta catch some sleep.

Very busy lately getting the distributive enterprise up and running.

The overall idea is to make modules - the burndown is one module of many. If it is all embeddable - then we can display it in wiki or other websites, keeping everytihing portable. I'd like to develop a way to embed 3D cad for manipulation out of FreeCAD, but that's later. It can be done already via webgl, needs work. That's for later - but it gives you an idea of the modular approach.