Beratung für Agile Software-Entwicklung
Und sie planen doch
Online-Artikel

Horst Franzke
Gartenstr.23 
D-84508 Burgkirchen 
+49 (8679) 914 795 
h.franzke@t-online.de

Sie sind hier: Startseite > Übersicht > Artikel Praxis | Artikel | Services | Bücherecke | Software | WWW | Über mich | Änderungen | Impressum

Einleitung

"Zufällig", "nicht vorhersehbar", "planlos" ... "chaotisch" sind einige der Attribute, die ich immer wieder von Seiten die Skeptiker zum Thema "Agile Software Entwicklung" höre. Und schon der Begriff "eXtreme Programming"(XP)[01] ist doch bereits verdächtig, oder? Einen klassischen (und damit sehr detailierten) Projekt-Plan sucht machen in einem XP-Projekt vergeblich. Das heißt aber nicht, daß es keine Planung gibt -- es gibt eben eine Agile Planung.

Die wichtigsten Elemente einer solchen Agilen Planung in einem Software-Entwicklungs-Projekt möchte ich hier kurz vorstellen:

  • beim Start wird sicher gestellt, daß alle Beteiligten das gleiche Ziel vor Augen haben und das gleiche Verständnis bzgl. des Projekt-Umfangs haben;
  • ein Release stellt eine sinnvolle Teilmenge des Gesamt-Systems dar und ist als solche produktiv beim Kunden einsetzbar;
  • eine Iteration ist die zeitlich kleinste Einheit eines Agilen Projekts und liefert bereits lauffähige Software für den Kunden;
  • durch regelmäßige Messungen am laufenden Projekt werden die Planwerte für die wiederkehrenden Release- und Iterations-Planungen ermittelt;

Seitenanfang

Der Start

Am Beginn des Projekts wird gemeinsam erarbeitet, was das Ziel des Projekts ist.

"Gemeinsam" bedeutet: die Kundenseite ist mit Experten und zukünftigen Endanwendern vertreten; auf der Software-Seite werden die Entwickler selbst teilnehmen. Auf beiden Seiten verzichtet man auf "Stellvertretern".

Bzgl. einer Ziel-Definition wird das gesamte System in Form sog. User Stories beschrieben: [02]:

  • die Kunden beschreiben in wenigen Sätzen selbst auf den Story-Cards, wie das System aus ihrer Sicht funktionieren soll;
  • für jede Story sollen die Software-Entwickler ein grobes Verständnis erlangen;
  • die Software-Entwickler schätzen sofort grob die Größe der Anforderung(en) in Form von "Funktions-Einheiten" (auch Story Points genannt);

Nun stellt sich sofort die Frage: wann hat man genug Story-Cards?

Ganz sicher ist es nicht Ziel einer solchen "Exploration" (= der Ausdruck in XP für diese erste Phase im Projekt), "alles" aufzuschreiben, was je einmal Thema im Projekt sein könnte. In der Literatur oder auch in Artikeln liest man oft die Zahl von "ca. 80 Stories", die ein System ausreichend beschreiben. Das hängt natürlich von Gesamtziel ab und muß relativiert werden.

Ich halte mich da schon lieber an eine Management-Regel der US-Marines [03]: "Aim for the 70% solution"; will heißen: es ist besser, mit einem 70-prozentigen Plan/Verständnis früh zu beginnen, als mit einem "perfekten" Plan zu spät.

das Ergebnis dieser Phase (Exploration) ist eine Sammlung von Story Cards, die den Gesamtumfang des Projekts ziemlich gut beschreiben; damit läßt sich Zeit- und Ressourcen-Bedarf einfach abschätzen.

Seitenanfang

Release

Die gesamte Projektlaufzeit ist in feste Zeiteinheiten unterteilt, die sog. Release-Timeboxes. Typischerweise dauert ein Release zwischen 4 und 8 Wochen, wobei 8 Wochen wirklich die Obergrenze darstellen sollte.

Zu Beginn eines jeden Release wird mit dem Kunden zusammen entschieden, was das System am Ende dieses konkreten Releases zusätzlich können soll. Die Regeln für eine Release-Planungssitzung sind einfach:

  • die Entwickler geben bekannt, wieviele "Funktions-Einheiten" sie in diesem Release schaffen können;
  • ggf. werden neue User Stories geschrieben und geschätzt;
  • ggf. werden alte User Stories vom Kunden zurückgezogen;
  • die Kunden "ziehen" solange User Stories (als Beschreibung für zusätzliche Funktionen) aus dem Stapel, bis die erklärte Release-Kapazität in "Funktions-Einheiten" erreicht ist;
  • die Kunden müssen sicher stellen, daß die Kombination der ausgewählten User Stories produktiv einsetzbar ist;

Eine solche Planungssitzung dauert typischerweise ca. 2 Stunden.

Wie man erkennt, kommt es bei dieser Art der Planung nicht zu den typischen Diskussionen über Projektänderungen: der Kunde kann "jederzeit" seinen Plan an die eigene Erwartung anpassen. Ein schnelles Reagieren z.B. auf Marktänderungen ist immer möglich.

Seitenanfang

Iteration

Innerhalb eines Release wird die Zeit noch einmal in feste kleinere Zeiteinheiten unterteilt: jedes Release besteht aus N Iterationen; jede Iteration dauert 1-2 Wochen.

Zu Beginn einer jeden Iteration findet eine gemeinsame Iterations-Planungssitzung statt. Dabei geht es um eine weitere Stufe der Detaillierung in der Beschreibung von konkreten User Stories: die Software-Entwickler sollen jetzt die Details soweit verstehen, daß sie

  • kleine Mini-Arbeitspläne je User Story schreiben können (sog. Task-Cards);
  • jede Task-Card im Aufwand grob abschätzen können (in sog. Task-Points);

Wie schon bei der Release-Planungssitzung geben auch hier die Entwickler bekannt, wie groß die Kapazität der konkreten Iteration ist (in Task-Points);

Sobald die Kapazität der Iteration verplant ist, ist auch das Ziel der Planungssitzung erreicht, nämlich ausreichend viele Mini-Arbeitspläne für die Dauer der Iteration.

Die Dauer einer Iterations-Planungssitzung hängt vor allem davon ab, wieviel gemeinsames Verständnis die Beteiligten zum System haben; als Anhaltspunkt kann durchaus das Doppelte einer Release-Planungssitzung angenommen werden.

Seitenanfang

Messung

Bleibt jetzt zum Schluß "nur" noch die Frage: ja, und wie werden die Kapazitäten von Release und Iteration eigentlich festgelegt?

Auch auf diese Frage hat XP eine einfache Antwort: in der jeweils vorangegangenen Phase (Release oder Iteration) wird das Erreichte gemessen (in Story-Points bzw. Task-Points); und genau diese Werte sind das Limit für die nächste Phase. Allein im allerersten Zyklus muß auf Annahmen zurückgegriffen werden: entweder hat man bereits die Erfahrungswerte aus vergleichbaren Projekten, oder man startet mit den in der Literatur vorgeschlagenen Richtwerten [02].

Nach dem ersten Zyklus hat man in jedem Fall die eigenen(!) Richtwerte, die sich von Zyklus zu Zyklus verbessern werden. D.h. die Werte werden sich nach 2 (spätestens 3) Zyklen so stabilisiert haben, daß eine nahezu perfekte Hochrechnung für den Rest der Projektdauer ermöglicht wird.

Damit werden realistische Pläne für einen überschaubaren Zeitraum erreicht, die dennoch so flexibel sind, um ohne Aufwand an geänderte Projektziele angepaßt zu werden.

Seitenanfang

Zusammenfassung

Die agile Planungsmethode (hier am Beispiel von eXtreme Programming) versucht nicht den kompletten Projektzeitraum zu planen, sondern konzentriert sich jeweils auf den unmittelbar nächsten Zeitraum (Release bzw. Iteration).

"Jedes Projekt ist anders", heißt es allgemein. Ich sage immer: "jedes Projekt hat seinen eigenen Charakter". Dieser Charakter ist u.a. bestimmt durch die Aufgabenstellung, die beteiligten Personen, den Grad der Verfügbarkeit von wichtigen Personen, dem Niveau des sog. Domainen-Wissen der Beteiligten usw. Und es wird bei jedem Projekt Aspekte geben, die vergessen wurden.

Natürlich kann man durch entsprechenden Methoden (z.B. FMEA für das Projekt) "alle" möglichen Beeinflussungen vorab identifizieren. Und natürlich kann man für alle diese Aspekte im Vorfeld eines Projekts Annahmen treffen unter denen man dann den "perfekten" Projektplan erstellt.

Meine Erfahrung hat mir gezeigt, daß jeder Plan nur auf Annahmen basieren kann und daß die Wahrheit über ein Projekt sich erst im Verlauf des Projekts zeigen wird bzw. erst am Projektende bekannt ist.

Genau hier setzt die Agile Planung an: durch Beobachtung des Projekts selbst in definierten Zyklen lernen die Beteiligten den Charakter des Projekts kennen. Letztendlich ist nur wichtig, wieviele "Funktions-Einheiten" pro Zyklus fertiggestellt werden können. Die Antwort auf diese Frage berücksichtigt implizit alle(!) tatsächlich vorhandenen Einflußgrößen des Projekts, ganz ohne Annahmen bzw. Schätzungen; es wird "einfach" gemessen.

Damit werden realistische Pläne für einen überschaubaren Zeitraum erreicht. Selbst in sehr guten Projekten mit Vorab-Plänen wird wohl kaum die hohe Treffsicherheit erreicht, wie es mit der oben beschriebenen Vorgehensweise der Fall ist.

Seitenanfang

Verweise

Folgende Quellen wurden zum Teil zitiert bzw. werden empfohlen zur Vertiefung und für weiterführende Informationen:

[01] Kent Beck:
Extreme Programming -- Das Manifest;
(Addsion-Wesley)
 
[02] Ron Jeffries/Ann Anderson/Chet Hendrickson:
Extreme Programming Installed;
(Addsion-Wesley)
 
[03] David H. Freedman:
Corps Business; The 30 Management Principles of the US Marines;
(Verlag Harper Business)
 

Seitenanfang

Copyright 2004 - 2007, Horst Franzke Impressum Last Page Update: 03-Okt-2004 (r-5-0-1)