Jedes Projekt ist unterschiedlich. Die Prinzipien, die jedem agilen Projekt zugrundeliegen, sind dagegen immer gleich. Nur wenn sie eingehalten werden, funktioniert die agile Vorgehensweise.
In diesem Kapitel erfahren Sie,
was hinter den wichtigsten agilen Prinzipien steckt,
welche Rolle Inkremente und Iterationen dabei spielen,
was Reviews und Retrospektiven sind und bewirken.
Die 12 Gebote
Die Verfasser des Agilen Manifests leiteten aus den von ihnen formulierten agilen Werten 12 konkrete Handlungsgrundsätze ab. Sie sind unter dem Begriff der „agilen Prinzipien“ bekannt geworden. Einige davon sind sehr auf die Eigenheiten der Softwareentwicklung zugeschnitten. Hier werden daher nur diejenigen vorgestellt, die dabei helfen, das agile Projektmanagement besser zu verstehen, und diejenigen, die auf Projekte außerhalb der Softwareentwicklung übertragen werden können.
Wichtige agile Prinzipien im Überblick |
---|
Iterationen | Produkte werden schrittweise entwickelt. Nach jedem Schritt wird Rückmeldung vom Kunden eingeholt. |
Inkremente | Nach einer Iteration bekommt der Kunde ein funktionierendes Teilprodukt zu sehen. |
Einfachheit | Es werden nur die Arbeiten erledigt, die wirklich nötig sind. |
Veränderung begrüßen | Veränderungen an den Anforderungen werden als normal betrachtet und möglichst als Chancen genutzt. |
Reviews | Der Kunde wird regelmäßig einbezogen und bekommt Teilprodukte zu sehen. Dazu kann er Feedback geben. |
Retrospektiven | Der Prozess und die Zusammenarbeit im Projekt werden regelmäßig beleuchtet und verbessert. |
Selbstorganisierte Teams | Teams organisieren sich selbst. Sie arbeiten dadurch effektiv und übernehmen hohe Verantwortung für das Produkt. |
Kooperation von Fachexperten und Entwicklern | Missverständnisse und Reibungsverluste in der Kommunikation werden durch direkte Zusammenarbeit vermindert. |
Einige der Prinzipien, wie z. B. die Retrospektiven, sind recht einfach auf jedes Projekt übertragbar. Andere, wie z. B. Inkremente, dagegen nicht. Hier ist dann auch eine gewisse Erfahrung im agilen Projektmanagement nötig, um sie schlüssig in ein konkretes Projekt zu integrieren.
Mehr Flexibilität im Projekt
Die Prinzipien Iteration und Inkrement lassen sich einfacher verstehen, wenn man auf die Probleme schaut, die sich ohne sie ergeben: Im klassischen Projektmanagement wird ein Projekt in Phasen unterteilt, die dann nacheinander durchlaufen werden. Für die Softwareentwicklung haben sich z. B. die Phasen als typisch herauskristallisiert, wie sie in der Grafik dargestellt sind.
Das klassische Wasserfallmodell
Da die Phasen hier wie bei einem Wasserfall von oben nach unten durchlaufen werden, spricht man bei dieser Vorgehensweise auch vom Wasserfallmodell. Der wesentliche Nachteil dieses Verfahrens ist, dass die Stakeholder (insbesondere der Kunde) erst am Ende aller Phasen das Produkt zu sehen bekommen. War die Produktbeschreibung am Anfang nicht exakt oder wurde sie nicht genau verstanden, so erhält er letztendlich nicht das, was er braucht. In der Praxis wird dann oft eine Wartungsphase nachgeschaltet, in der das Produkt dem Kundenwunsch angepasst wird, und die nicht selten einen vergleichbaren Aufwand erfordert wie alle vorherigen Phasen in Summe.
Iteration: Produktentwicklung in Zyklen
Das iterative Vorgehen ist der Gegensatz zum Wasserfallmodell. Im Agilen Manifest steht: „Liefere funktionierende Software regelmäßig innerhalb weniger Wochen oder Monate und bevorzuge dabei die kürzere Zeitspanne“ (Originaltext: „Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale“). Wird dieser Grundsatz befolgt, bekommt der Kunde frühzeitig und regelmäßig Teilprodukte zu sehen, die er mit seinen Erwartungen abgleichen kann. Daraus ergibt sich als eines der wichtigsten agilen Prinzipien das iterative Vorgehen bei der Produktentwicklung. Während bei der klassischen Entwicklung das Produkt „in einem Wurf“ entsteht, sieht das agile Projektmanagement von vornherein eine Entwicklung in mehreren Schritten bzw. Zyklen vor.
Produktentwicklung in Iterationen
Gleichzeitig wird dabei aber auch ein sauberes Projektmanagement verfolgt. Daher werden in jedem Zyklus die wesentlichen Projektphasen durchlaufen, die auch das klassische Projektmanagement vorgibt. Es werden also auch hier z. B. Anforderungen erfasst, ein Entwurf gemacht, ein (Teil-)Produkt entwickelt und getestet. Nach Abschluss jeder Iteration kann Bilanz gezogen werden, ob die Produktentwicklung noch in die richtige Richtung läuft oder ob nachgesteuert werden sollte. So wird mit jeder Iteration das Gesamtprodukt vorangebracht, ohne dass bereits am Anfang des Projektes die Anforderungen an dieses Gesamtprodukt uneingeschränkt bekannt sein müssen.
Wichtig
Die wesentliche Stärke der iterativen Vorgehensweise besteht darin, dass Sie am Anfang der Produktentwicklung noch nicht genau festlegen müssen (und noch nicht einmal genau verstanden haben müssen), wie das Produkt am Ende aussehen wird. Andere agile Prinzipien und Techniken helfen, dass der Prozess dabei nicht zum Blindflug wird.
In den meisten Projekten wird bereits in der einen oder anderen Form iterativ vorgegangen. Das Grundprinzip ist also nicht sonderlich neu. Im agilen Projektmanagement wird es jedoch mit Inkrementen und User Stories kombiniert und ist dadurch etwas komplexer. Gleichzeitig wird damit sichergestellt, dass systematisch das bestmögliche Produkt entwickelt wird.
Inkrement
Das agile Manifest gibt als wichtigstes Prinzip vor: „Unsere höchste Priorität ist es, den Kunden durch frühe und kontinuierliche Auslieferung wertvoller Software zufriedenzustellen“ (Originaltext: „Our highest priority is to satisfy the customer through early and continuous delivery of valuable software“). In diesem Prinzip steckt natürlich auch wieder der Gedanke der iterativen Entwicklung, der im Kapitel zuvor bereits ausgeführt wurde. Dahinter steht aber auch, dass der Kunde ein Zwischenprodukt bekommt, das für ihn einen klaren Wert („valuable“) hat. Dies führt zu dem Begriff der Inkremente.
Das Prinzip der Inkremente hängt eng mit dem Prinzip der Iterationen zusammen. Als Inkrement wird das Teilprodukt bezeichnet, das während einer Iteration entsteht. Dabei ist für Inkremente aber noch eine andere Eigenschaft wesentlich, nämlich dass sie aufeinander aufbauen und einander beinhalten.
Inkremente schließen einander ein
Das bedeutet: Produkteigenschaften bzw. Anforderungen, die in einer Iteration umgesetzt wurden, sind nicht nur in diesem, sondern auch in allen späteren Inkrementen enthalten.
Beispiel:
Das erste Inkrement einer Software zur Haussteuerung ermöglicht das Ablesen aller Raumtemperaturen und die Signale aller Bewegungsmelder mit einem Smartphone. Diese Funktionen werden auch in allen weiteren Inkrementen vorhanden sein.
Der Kunde kann sich also darauf verlassen, dass die Software ständig wächst und nichts von dem verlorengeht, was er an Funktionen schon bekommen hat. Bei jeder Iteration fängt man also da an, wo das letzte Inkrement steht. Eine Ausnahme hierzu bilden natürlich Produktfehler, die erkannt und dann beseitigt werden.
Wichtig
Ein Inkrement ist mehr als nur ein Teilprodukt. Es schließt zusätzlich alle vorherigen Inkremente ein und ist für sich genommen von Nutzen für den Kunden.
Eine weitere wichtige Eigenschaft eines Inkrements besteht darin, dass es ein in sich schlüssiges und testbares Teilprodukt ist. Das ist wichtig, da das Inkrement beim agilen Projektmanagement auch dazu genutzt werden soll, beim Kunden Feedback einzuholen und Vertrauen aufzubauen.
Keine Inkremente: Prototypen
Eine Frage, die in meinen Seminaren häufig aufkommt, ist diejenige nach der Abgrenzung von Inkrementen zu Prototypen. Diese Diskussion ist recht schwierig, da unter dem Begriff Prototyp in verschiedenen Branchen ganz unterschiedliche Dinge verstanden werden. Um hier etwas genauer auf den Unterschied zwischen einem Prototypen und einem Inkrement einzugehen, folgendes Beispiel, das auch später in diesem TaschenGuide noch einmal eine Rolle spielen wird.
Beispiel:
Ein Unternehmen bietet Dienstleistungen im sozialen Bereich an und möchte eine neue Beratungsleistung „Elternzeit“ als Produkt auf den Markt bringen. Sinnvolle User Stories aus Sicht des Kunden sind dann z. B. „Erstkontakt mit der Beratung aufnehmen“ oder „Über rechtliche Aspekte informieren“.
Um das Inkrement, also das Produkt zu den User Stories aus dem Beispiel, in einer Iteration zu realisieren, müssen verschiedene Prozesse aufgesetzt werden und ineinandergreifen. In der folgenden Grafik ist dies schematisch dargestellt.