Trello findet in den letzten Monaten viel Anklang und wird häufig für Projekte in unterschiedlicher Ausprägung verwendet. Ich setze das Tool mittlerweile auch für die Abhandlung unserer Sprints ein. Natürlich würde könnte dies auch analog geschehen, aufgrund eines verteilten Teams setze ich dann aber doch lieber auf die digitale Variante, zumal sich einige “Prozesse” dadurch automatisieren lassen. Einer diese Punkte war die Generierung von Release Notes. Um aber auch während eines Sprints am aktuellen Stand zu sein, benötigen wir ein Burndown Chart. Also mal eben umsetzen …
Preconditions
Folgende Bedingungen müssen erfüllt sein, damit trello-burndown verwendet werden kann:
- Node.js (getestet >= 0.8)
- Trello-Account
Um aus Trello-Cards ein Burndown Chart generieren zu können, bedarf es natürlich der entsprechend abgebildeten Zahlen. Diese können beispielsweise in den Titel einer Trello-Card kodiert werden. Das von mir implementierte Node.js Modul trello-burndown setzt hierbei folgende Abbildung voraus:
[p|est-e] title
Die einzelnen Bestandteile kurz erklärt:
p: Priorität/Reihenfolge des Tasks; dient hauptsächlich der Erhaltung der Priorität über unterschiedliche Listen hinweg
est: Der geschätzte Aufwand dieses Tasks, entspricht dem Output der Sprintplanung
e: Der tatsächliche Aufwand für diesen Task, dient der Verbesserung der Schätzfähigkeit des Teams
title: Der eigentliche Titel des Tasks/der Card
Werden alle Cards nach diesem Schema erfasst, kann das Tool bereits eingesetzt werden. Die Verwaltung der Sprints sieht bei uns aktuell so aus:
- Sprint [Nr]
- In progress
- [Version]
Dies wird als Listen abgebildet. Die Liste “[Version]” stellt die abgeschlossenen Tasks dar. Darauf basierend wird das Burndown-Chart berechnet.
Berechnung
trello-burndown nimmt diese ganzen Daten und generiert daraus eine Statistik, die pro definierten Sprint (dies geschieht alleinig durch den Aufruf der Generierung, siehe die verwendeten Parameter) abgelegt werden. Hierbei kann beispielsweise auch die Uhrzeit angegeben werden zu der das Standup-Meeting stattfindet. Dadurch lässt sich die Abbildung auch realistisch durchführen. Findet das Meeting beispielsweise täglich um 10:00 Uhr statt, werden alle Punkte, die davor in die “Abgeschlossen-Liste” verschoben werden, dem vorigen Tag zugerechnet.
Genauere Hinweise zur Berechnung und Konfigurationsmöglichkeiten finden sich hier.
Darstellung
Über den Webserver kann auf die Auswertungen der Sprintdaten zugegriffen werden. Die Daten werden über xCharts und D3 visualisiert. In der aktuellen Variante wird ein Burndown-Chart und eine Gegenüberstellung des geschätzten und des tatsächlichen Aufwandes pro Tag angezeigt.
Burndown
Das Burndown Chart (zugegeben ein sehr schlechter Sprint, aber wir üben noch) sieht wie folgt aus:
Gegenüberstellung Aufwand pro Tag
Hier nun die Gegenüberstellung des geschätzten und des tatsächlichen Aufwandes pro Tag:
Features
Dieses Projekt steht auf Github zur Verfügung bzw. kann via NPM einfach bezogen werden. In der aktuellen Version 0.3.0 sind folgende Features enthalten:
- Unterstützung mehrerer Sprints
- Aufbereitung der relevanten Daten per Sprint (Generierung wird aktuell nicht on-the-fly, sondern via command line durchgeführt und kann über einen Job beispielsweise täglich gestartet werden).
- Webserver
- Aufbereitung und Anzeige der relevanten Daten als Burndown und Aufwands-Gegenüberstellung
- Anzeige von beliebigen Sprints
In zukünftigen Versionen werden noch weitere Features hinzukommen.
Download / Dokumentation / Installation
Dieses Tool wird auf Github gehostet. Dort findet sich daher die ständig aktuelle Version, als auch die Dokumentation. Zur Verwendung kommt Node.js, wodurch dieses natürlich vorhanden sein muss. Die Installation kann dann einfach per
npm install trello-burndown
durchgeführt werden. Hinsichtlich Konfiguration und Anbindung an Trello sind einige Einstellungen vorzunehmen, diese finden sich jedoch auch in der Dokumentation beschrieben und sollte in ein paar Minuten erledigt sein.
Feedback
Für jegliches Feedback bin ich natürlich dankbar. Da es in meinem Fall produktiv im Einsatz ist, wird es sicherlich eine laufende Weiterentwicklung geben. Nichts desto trotz interessiert mich eure Meinung. Sollte es jemand in Einsatz nehmen oder in Erwägung ziehen, oder aber aus diversen Gründen überhaupt nicht, freue ich mich über eine entsprechende Rückmeldung.