TopicsHowTo
Work item tracking
Several teams now use burn down charts to track the progress of their work, so that they can see when they are falling behind, and decisions such as "this blueprint needs to be postponed" can be done as early as possible.
What is a work item?
A blueprint describes an entire goal or project, can sometimes take many weeks to complete, and can need more than just one person to implement it. For efficient tracking, these need to be broken down to several steps, each of which should not take more than two days. Items which need longer should be split either logically, or if that's impossible, artificially like "do something 1", "do something 2", etc.
One work item has :
- precisely one assignee who is responsible for it
- a status (todo, done, postponed)
Defining work items
Right now, the preferred and easiest method is to add work items to a blueprints' whiteboard. The start is indicated by a line "Work items:" (anywhere in the whiteboard), then exactly one line for each work item, and finally an empty line to end the work item list. Each work item is one line with the description, then a colon, and the status, and optionally has an assignee prefix in square brackets:
Work items: package gnome-monster: DONE write gnome-monster MIR: TODO [seb128] patch gnome-monster to support green monsters: POSTPONED pitti, 2009-11-27: can you please clarify the precise shade of green for the proposed patch? [.. further whiteboard discussion here... ]
Valid states:
state |
possible aliases |
TODO |
empty string, INPROGRESS |
DONE |
|
POSTPONED |
POSTPONE |
(capitalization does not matter)
The default assignee for a work item is the blueprint assignee. Use the [assignee] description syntax for blueprints where several people are involved.
Please see desktop-karmic-network-ui for an example.
Reports
There are two scripts to process those work items:
workitems.py scans blueprints of a particular release, name pattern (desktop-lucid-*), and optionally, milestone, and puts them into a database, which stores the status of all work items on every date. It is capable of generating a HTML report with a by-blueprint and by-assignee list, and text/CSV/raw dump outputs.
py-burndown-chart generates a burn down chart from CSV data as produced by workitems.py.
The current reports are generated hourly by team, release, and milestone on http://piware.de/workitems/.
Please contact Martin Pitt if you need updates to the cron jobs, or a new report.