Entwickeln mit Scrum/Agilo

Wegen eines privaten Projekts habe ich in den letzten paar Tagen eine kleine Entwicklungsumgebung aufgebaut. Dazu dient mir auf meinem Notebook eine VirtualBox (Ubuntu 10.04, Tomcat, MySQL 5.2, Apache 2, Trac + Agilo, SVN) als Deployment- und Entwicklungsplattform. Die Installation des ganzen Environments erledigte ich recht schnell anhand von http://wiki.ubuntuusers.de/Trac und http://www.agile42.com/cms/pages/download-install/

Nachdem ich mich mit Agilo ein bißchen auseinandersetzte, stellte ich fest, dass das Anlagen von Teams nicht funktionierte, die Fehlermeldung

 An error occurred while getting None from the database: no such table: agilo_sprint

war mehr als eindeutig: bei der Installation von Agilo wurden in meiner Version drei Tabellen schlichtweg nicht erstellt.
Nach kurzer Suche wurde ich fündig und legte mit sqlite3 trac.db die fehlenden Tabellen für die Benutzer manuell an:

CREATE TABLE agilo_team (
  name text,
  description text,
  UNIQUE (name)
);
CREATE TABLE agilo_team_member (
  name text,
  team text,
  description text,
  ts_mon real,
  ts_tue real,
  ts_wed real,
  ts_thu real,
  ts_fri real,
  ts_sat real,
  ts_sun real,
  UNIQUE (name)
);
CREATE TABLE agilo_calendar_entry (
  date integer,
  teammember text,
  hours real,
  UNIQUE (date,teammember)
);

agilo_calendar_entry wurde ebenfalls nicht angelegt, wie ich später feststellte.

Weiterhin stellte ich fest, dass beim Erstellen eines Sprints der Fehler

AttributeError: 'NoneType' object has no attribute 'toordinal'

auftrat. Google sei dank fixte ich das Problem, indem ich bei den Sprint-Daten Start- und Endzeitpunkt manuell eintrug. Anscheinend funktioniert das Feld Duration in days in der Sprint-Administration noch nicht so ganz.

Soweit dazu, eventuell gibt es ja die ein oder andere Person, die ebenfalls über diese beiden Fehler stolpert.

Für mich als Scrum-Neuling – produktiv hatte ich diese Entwicklungsmethode noch nicht eingesetzt – wurde ich beim näheren Betrachten der Optionen von Agilo erst einmal erschlagen. Deshalb folgt hier eine grobe Auflistung der Begrifflichkeiten und Funktionalitäten, wie sie in der Standard-Installation definiert sind.

  • Ticket-Typen
    • Requirement sind Tickets, die auf die Fragen Welches Problem zu lösen ist und warum es zum Problem wird. Requirements sollen SMART (Simple, Measurable, Achievable, Realistic and Traceable) sein. Nachdem ein Requirement angelegt wurde, kann über “Edit” 0..n User Stories zugewiesen werden.
    • User Story ist ein Ticket, das beschreibt was der Benutzer mit dem System erreichen will und warum (Nutzen dieser Funktionalität). Nachdem eine User-Story angelegt ist, kann über “Edit” auf einen neuen Task verwiesen werden. Eine User Story kann 0..n Tasks besitzen.
    • Tasks sind Tickets, die eine Aufgabe, die von einem Team Member zu erledigen ist, detailiert erklärt. Jeder Task soll ausführlich sein und sich auf eine Aufgabe beziehen.
  • Backlog
    • Das Product Backlog beinhaltet die User Stories und darunter jeweils die Requirements, die einer User Story zugeordnet sind.
    • Das Sprint Backlog beinhaltet die Requirements (und die User Story bzw. Tasks die dem Requirement zugewiesen worden sind) und offene Bugs. Es werden nur die Requirements/Tasks angezeigt, die dem Sprint zugewiesen worden sind.
    • Sprint bezeichnet den Zeitraum, in dem mehrere Tasks/Requirements gelöst werden. Im Administrations-Interface müssen jeweils neue Sprints mit Start- und End-Datum angelegt werden.
    • Milestone bezeichnet einen Zeitraum, der wiederum aus mehreren Sprints besteht

Die Frage nach dem “Wie gehe ich nun vor?” ist über oben die dargestellte Struktur eigentlich relativ klar:

  • Anlegen der User Stories (WELCHE Funktionalität wird benötigt um einen Business Value zu erreichen?)
  • Erstellen der Requirements (WELCHE Probleme einer User Story gilt es zu lösen?) und Zuweisen der Requirements an eine User Story
  • Erstellen der zugehörigen Tasks (WAS ist bei einer User Story technisch zu tun?), die einer User Story angehören
  • Erstellen eines Meilensteins. Requirements müssen dem Meilenstein zugewiesen werden
  • Erstellen von ein oder mehreren Sprints. Tasks, User Stories und Bugs müssen den Sprints zugewiesen werden

Eventuell werde ich die nächsten Tage noch den ein oder anderen Blog-Eintrag zu Agilo verfassen. Danke fürs Lesen,

Comments ( 2 )

  1. / ReplyMartin Häcker
    Hi! Cooles Review! :-) Als Entwickler würde mich interessieren wieso Du am Anfang in das Problem mit den fehlenden Tabellen hinein gelaufen bist, da wir eigentlich explizite Tests haben (die nach jedem commit laufenI) die diese Situation sehr gut abdecken müssten. Wenn wir da etwas übersehen haben wäre es natürlich wichtig das zu fixen. (Vermutlich am besten über unsere Google-Group ). Ansonsten noch ein paar Anmerkungen zu dem Post: Ich glaube am Schluss hast Du Stories und Requirements verwechselt, da man eigentlich mit den Requirements anfängt. Manche Teams lassen Requirements auch ganz weg, da sie dass explizite Tracking des Business-Values im Tool nicht benötigen. Manche Firmen verwenden auch keine Meilensteine für das Release-Tracking, da sie sowieso nach jedem Sprint releasen. Eine Sache zu den Tasks: Es ist wichtig dass diese von dem Team-Mitgliedern die die Stories dann auch tatsächlich umsetzen eingetragen werden (meist während dem Sprint Planning meeting) damit diese Tasks wirklich relevant und konkret für eine bestimmte Umsetzung sind. Das hat den Sinn das das Team sich selbst klar wird was es genau machen muss, die Tasks realistisch sind und daraus insgesamt das Team die Überzeugung gewinnt dass sie das was sie sich vorgenommen haben auch tatsächlich schaffen können. (Und es gibt natürlich noch mehr Gründe.. :) Na ich texte dich hier mal nicht zu - danke für das Review und bye!
  2. / ReplySchakko
    Hi Martin, Erst einmal danke für deinen Eintrag. Ist immer schön zu sehen, wenn Entwickler Entwicklern antworten ;) Das Problem mit den fehlenden Tabellen kann ich mir nicht erklären. Ich habe die aktuelle Agilo-Version nach Installationsanleitung installiert. Während der Installation bzw. des Upgrades der Trac-Datenbank kam es auch zu keinem Fehler. Vielen Dank für die Aufklärung bezüglich Requirements und User Stories. Ich habe gerade - bevor ich diesen Kommentar hier geschrieben habe - in eurer Agilo-Instanz die Verknüpfungen noch einmal angeschaut, was wiederum die Sache mir vernünftig erklärt hat. Die Redundanz Meilenstein/Sprint ist mir auch aufgefallen. Meilensteine können aber als eine grobe Planung oder Sammlung von Sprints angesehen werden (aber das muss ich dir ja nicht erklären ;-) ). Bei den Tasks ist es bei mir so, dass ich als einziger an dem Projekt arbeite und somit es in dem Sinne auch keine SP-Meetings gibt. Vielen Dank noch einmal für deinen Eintrag - hat mich gefreut! :-)

Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>