WorkItemsHowto

Differences between revisions 3 and 4
Revision 3 as of 2009-11-24 18:18:39
Size: 2871
Editor: pD9EB53C7
Comment:
Revision 4 as of 2009-11-24 18:23:10
Size: 4405
Editor: pD9EB53C7
Comment:
Deletions are marked like this. Additions are marked like this.
Line 33: Line 33:
  Work items:
  package gnome-monster: DONE
  write gnome-monster MIR: TODO
  [seb128] patch gnome-monster to support green monsters: POSTPONED
Work items:
package gnome-monster: DONE
write gnome-monster MIR: TODO
[seb128] patch gnome-monster to support green monsters: POSTPONED
Line 38: Line 38:
  pitti, 2009-11-27: can you please clarify the precise shade of green for the proposed patch?
  [.. further whiteboard discussion here... ]
pitti, 2009-11-27: can you please clarify the precise shade of green for the proposed patch?
[.. further whiteboard discussion here... ]
Line 65: Line 65:
The current reports are generated hourly by team, release, and milestone on [[http://piware.de/workitems/]]. The current reports are generated hourly by team, release, and milestone on
[[http://piware.de/workitems/]]. The most interesting file is `report.html`
which combines the textual reports with the chart (e. g. see the
[[http://piware.de/workitems/desktop/karmic/report.html|desktop team's karmic
report]]), but if you want to use those scripts by yourself, you can also
download the current sqlite database from those directories.

E. g. the current desktop and mobile alpha-2 reports are generated with those
commands (please note that the desktop one additionally pulls work items from a
wiki page):

 {{{
03 * * * * $HOME/bin/workitems.py -d data/desktop-lucid-workitems.db -r lucid -p 'desktop-lucid-' -m 'https://wiki.ubuntu.com/Kubuntu/Todo/Lucid?action=raw'; $HOME/bin/workitems.py -d data/desktop-lucid-workitems.db --csv --to 2010-04-01 | python ubuntu/py-burndown-chart/burndown.py --output=www/www/workitems/desktop/lucid/burndown.png --height=450 --title='Desktop Team Lucid Burndown' --title_y 400 -; $HOME/bin/workitems.py -d data/desktop-lucid-workitems.db --html > www/www/workitems/desktop/lucid/report.html

15 * * * * $HOME/bin/workitems.py -d data/mobile-lucid-a2-workitems.db -r lucid -p 'mobile.*-lucid-' --milestone lucid-alpha-2; $HOME/bin/workitems.py -d data/mobile-lucid-a2-workitems.db --csv --to 2010-01-14 | python ubuntu/py-burndown-chart/burndown.py --output=www/www/workitems/mobile/lucid-alpha2/burndown.png --height=450 --title_y 400 --title='Mobile Team Lucid Alpha 2 Burndown' -; $HOME/bin/workitems.py -d data/mobile-lucid-a2-workitems.db --html > www/www/workitems/mobile/lucid-alpha2/report.html
 }}}

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/. The most interesting file is report.html which combines the textual reports with the chart (e. g. see the [[http://piware.de/workitems/desktop/karmic/report.html|desktop team's karmic report]]), but if you want to use those scripts by yourself, you can also download the current sqlite database from those directories.

E. g. the current desktop and mobile alpha-2 reports are generated with those commands (please note that the desktop one additionally pulls work items from a wiki page):

  • 03 * * * * $HOME/bin/workitems.py -d data/desktop-lucid-workitems.db -r lucid -p 'desktop-lucid-' -m 'https://wiki.ubuntu.com/Kubuntu/Todo/Lucid?action=raw'; $HOME/bin/workitems.py -d data/desktop-lucid-workitems.db --csv --to 2010-04-01 | python ubuntu/py-burndown-chart/burndown.py --output=www/www/workitems/desktop/lucid/burndown.png --height=450 --title='Desktop Team Lucid Burndown' --title_y 400 -; $HOME/bin/workitems.py -d data/desktop-lucid-workitems.db --html > www/www/workitems/desktop/lucid/report.html
    
    15 * * * * $HOME/bin/workitems.py -d data/mobile-lucid-a2-workitems.db -r lucid -p 'mobile.*-lucid-' --milestone lucid-alpha-2; $HOME/bin/workitems.py -d data/mobile-lucid-a2-workitems.db --csv --to 2010-01-14 | python ubuntu/py-burndown-chart/burndown.py --output=www/www/workitems/mobile/lucid-alpha2/burndown.png --height=450 --title_y 400 --title='Mobile Team Lucid Alpha 2 Burndown' -; $HOME/bin/workitems.py -d data/mobile-lucid-a2-workitems.db --html > www/www/workitems/mobile/lucid-alpha2/report.html

Please contact Martin Pitt if you need updates to the cron jobs, or a new report.

WorkItemsHowto (last edited 2013-09-05 12:34:53 by host86-162-202-39)