Wie man agile Projekte konzipiert
Ziele der Konzeption in agilen Projekten
Konzeption und Planung agiler Projekte heißt für uns alles was zur Vorbereitung eines Sprints notwendig ist, was also vor einem Sprint Planning geschehen muss. Der erste Sprint eines Projektes nimmt bei dieser Frage eine besondere Rolle ein, da seine Vorbereitung mehr Zeit in Anspruch nehmen wird als die späterer Sprints. Konzeption und Planung kann entsprechend in zwei Teile unterteilt werden: Konzeption und Planung vor dem Beginn der Entwicklung / der Sprints und Konzeption und Planung während der Entwicklung / im Rahmen laufender Sprints. Zweiteres wird üblichwerweise als Backlog Refinement bezeichnet, wobei unsere Perspektive bewusst ein wenig darüber hinaus geht.
Selbst mit all diesen Annahmen gibt es noch viele Wege, Ausgestaltungsmöglichkeiten und Varianten, wie die Entwicklung später genau aussieht. Nicht zuletzt wird dies auch durch das Team (Zusammensetzung, Erfahrung, Reifegrad), die verwendete Technologie und die Ziele des Projektes (z.B. den Grad an Innovation) bestimmt. Da nun Konzeption und Planung der optimalen Vorbereitung der Entwicklungsarbeit dient, muss diese Vorbereitung all die genannten Aspekten einbeziehen.
Agil & Planung: Wie passt das zusammen?
Um agil entwicklen zu können wird ein Backlog benötigt. Wichtigstes Ziel der Konzeption- und Planungsphase / der Feinkonzeption vor dem Beginn der Entwicklung ist die Erstellung eines Backlogs als Input für die ersten Sprints.
Der Anspruch ist nicht ein vollständiges oder gar vollständig spezifiziertes Backlog zu haben, denn dies würde den Grundgedanken agiler Entwicklung widersprechen. Der Anspruch ist erstens ein ausreichend ausführliches Backlog zu haben, um mit der Entwicklung starten zu können und zweitens den Gesamtumfang der Software in dem Maße beschrieben / umrissen zu haben, um das Funding der Projektumsetzung sicherstellen zu können. Dazu sollte im Rahmen der Konzeption auch eine (Produkt-)Vision formuliert werden, falls das bis zur Konzeption nicht bereits geschehen ist.
Mit Scrum als Prozess und speziell mit dem Produkt-Backlog wollen wir die Arbeit des Teams organisieren. Das Backlog muss also die Frage beantworten was zu tun ist und wie wichtig einzelne Bestandteile / Aufgaben, also Product Backlog Items sind. Das Backlog muss daher umfassend und ausführlich genug sein, um priorisieren zu können und somit Entscheidungen in Bezug auf die Arbeit treffen zu können, sprich diese praktisch für das Team organisieren zu können. Im Rahmen der Konzeption muss also der Business Value der erfassten Product Backlog Items ein wichtiges Thema und Kriterium sein.
Agil konzipieren = iterativ und inkrementell konzipieren
Nicht nur die Entwicklung auch die Konzeption und Planung eines agilen Projektes sollte von vornherein iterativ und inkrementell ablaufen. D.h. man beginnt mit einer ersten Menge an User Stories. Diese wird Runde, um Runde (= Iteration für Iteration) im Wechselspiel zwischen den verschiedenen Teilnehmern der Konzeption gesichtet, ergänzt und verfeinert. Dabei stellen sich beständig Fragen, die in den einzelnen Runden miteinander geklärt und abgestimmt werden, damit die Ergebnisse in die User Stories überführt werden können. Nach jeder Runde ergibt sich eine neue Version des Produkt-Backlogs, ein neues, überarbeitetes Inkrement, welches alle vorherigen ersetzt.
Wie später im Rahmen von Sprint-Plannings und im allgemeinen üblich wird dabei nicht jede Erwägung und jedes Argument Teil der User Stories, sondern nur das Ergebnis / die Essenz. Die Konzeption wird insofern nicht vollständig dokumentiert, sondern nur im ergebnis dokumentiert. Das macht es um so wichtiger, dass möglichst viele später während der Umsetzung relevante Stakeholder oder – falls es zu viele sind – Vertreter für diese Stakeholder bei der Konzeption eingebunden werden.
Wie später im eigentlichen Scrum-Prozess ist das Ziel der Konzeption zu lernen. In jedem Schritt der Konzeption erfassen wir Anforderungen an das Ergebnis als Backlog Items so klar und so gut es geht. Trotzdem stellen wir bei den Konzeptions-Iterationen über das Backlog immer wieder fest, das Dinge missverständlich erfasst, unterschiedlich interpretiert oder aus Sicht einiger Beteiligte unklar formuliert wurden. Jede dieser Unklarheiten ist eine Chance zu Lernen und für mehr Klarheit zu sorgen. Jedes Gefühl der Unklarheit bei einem der Beteiligten sollte daher begrüßt, formuliert und aufgelöst werden. Die Konzeption dreht sich um genau diese offenen Punkte und Fragen:
- Was soll getan werden?
- Warum genau so?
- Ist es nicht besser, wenn man?
- ...
Es gilt Antworten auf all die aufkommenden Fragen zu finden und festzuhalten. Passiert dies, so wird die Konzeption für das Projekt einen großen Wert entfalten. Nebenbei wird man eine gemeinsame Sprache, ein gemeinsames Glossar und damit ein gemeinsames Verständnis aufbauen.
Ein gemeinsames Vertändnis aufbauen
Neben dem Aufbau des Produkt-Backlogs als greifbarem Resultat ist der Aufbau eines gemeinsamen Verständnisses aller Beteiligten das zweite wichtige Ergebnis der Konzeption. Ein gemeinsames Verständnis bezieht sich auf Fragen wie:
- Warum wird das Projekt durchgeführt?
- Warum sind bestimmte Funktionen oder Bestandteile wichtig?
- Wann ist das Projekt erfolgreich?
- Wen brauchen wir, damit das Projekt erfolgreich wird?
- Wie erfassen und verschriftlichen wir Anforderungen?
- Welche Begriffe udn Fachtermini gibt es und wie sind diese zu verstehen?
- Welche Hindernisse gibt es auf dem Weg?
- In welchem Kontext findet das Projekt statt?
- Welche Rahmenbedingungen gibt es?
Bausteine der Konzeption
- (Detail-)Abstimmung Konzeptstruktur
- Impact Mapping
- User Story Mapping
- User Story Workshop
- Ausarbeitungen