Wie entsteht ein Scrum-Team? Wie starte ich ein Entwicklungsprojekt für ein Produkt? Womit anfangen? Was ist konkret zu tun, um ein effektives Team zu formen? Der Scrum-Guide sagt dazu nichts aus. Hier ein paar Ideen sowie Literaturhinweise, die sich für mich bewährt haben. Diesmal Schritt 2: Einen Releaseplan für Team und Stakeholder entwerfen.
Warum brauche ich überhaupt einen Release-Plan?
Ich komme noch einmal zu einer Kernaufgabe des Product Owners: Er muss klar machen, warum es sein Produkt geben soll. Was soll erreicht werden? Welches Problem für welche Kundengruppe bzw. für welche Anwender soll gelöst werden? Welches sind die Kernfunktionalitäten? Dazu hat er die Produktvision erstellt.
Er hat vielleicht eine User-Story Map erarbeitet. Personas beschreiben repräsentativ die verschiedenen Endanwendergruppen. Ihm ist (grob) klar, welche Prozesse und Prozess-Schritte von welchem Endanwender unterstützt werden sollen. Themen, Epics, User-Stories sind dementsprechend beschrieben. /1/
„Hilfe! Mein Product Owner kann nur 1-2 Sprints im Voraus denken!“
Jetzt können wir loslegen! Endlich! — Formell haben wir ja auch alles was der Scrum Guide an Artefakten beschreibt: Vision, Backlog Items. Man setzt sich auch brav ein Ziel für jeden Sprint.
Trotzdem habe ich bereits häufig erlebt, dass etwas fehlt: Das Team arbeitet vor sich hin und sieht trotzdem kein Ende. Der Product Backlog wird länger. Man verliert sich im Klein-Klein der Anforderungen. Frustrationen steigen. Ein Sprint gleicht dem vorherigen, ohne dass man gefühlt der Realisierung des Produktvision näher gekommen ist. Aussagen, wie „Hilfe! Mein Product Owner kann nur 1-2 Sprints im Voraus denken!“ werden getroffen.
Stakeholder werden unzufriedener. Sie sehen keinen Fortschritt. Leistungen des Teams werden nicht anerkannt, obwohl sie Tag und Nacht arbeiten. Erwartungen werden nicht erfüllt. Letztendlich wenden sie sich vom Produkt ab.
Der Product Owner gibt entnervt auf oder geht in die „innere Kündigung“.
High-Level Plan über den Sprint hinaus
Die Situation ist herausfordernd. Es fehlt etwas! Das Sprintziel ist zu kurz, um weit genug im Voraus zu planen. Die Produktvision ist als Ziel zu weit weg und liefert keinen roten Faden, wie man dahin kommen kann.
In dieser Situation hat sich für mich das Buch von Mike Cohn „Agile Estimating & Planning bewährt.
Es gilt Zwischenziele zu setzen: ein High-Levelplan, der über den einzelnen Sprint hinausschaut. Er beantwortet die Frage: welche Zwischenziele wollen wir mit den nächsten Releases bis wann erreichen? Ein Release umfasst dabei einen Zeitraum von typischerweise 3-6 Monaten. Je nach Länge passen also 3 bis 12 oder sogar noch mehr Sprints in ein Release.
Vorteile:
- Der Product Owner und das ganze Team entscheiden gemeinsam, wieviel entwickelt werden muss und wie lange es dauert bis man ein „Releaseable Product“ hat.
- Der Releaseplan hilft es Erwartungshaltungen von Stakeholder zu managen: Was wird in welchem Zeitraum entwickelt. Mit welchen Funktionalitäten kann wann gerechnet werden? Und mit welchen erst einmal nicht.
- Dies hilft auch dem Entwicklungsteam. Sie wissen auf welches zeitnahe Zwischenergebnis warum hingearbeitet wird und sich dabei zu fokussieren!
Wie entsteht der Release-Plan?
Mike Cohn schlägt 6 Schritte vor um einen Release-Plan zu erstellen:
- "Determine Condition of Satisfaction": Finde heraus, unter welchen Bedingungen das Projekt bzw. das Produkt als Erfolg bzw. als gescheitert angesehen wird. (Determine the conditions of Satisfaction): Bis wann muss es fertig sein? Reicht es Teile zuerst zu liefern?
- "Estimate the User Stories": Schätze die User-stories (auf Basis von Story Points). Dabei ist es nicht wichtig, alles abzuschätzen, was der Product Owner jemals haben können wollte. Es reicht, sich auf die Stories zu fokussieren, die es wahrscheinlich in die Release schaffen.
- "Select an iteration length": Wähle eine Sprint Länge zwischen 1- 4 Wochen. Diese sollte (wenn möglich) über die Projektlaufzeit stabil bleiben. Je schneller Feedback erwartet wird, ej höher die Unsicherheit im Sprint, desto kürzer die Sprint-Länge.
- "Estimate velocity": Schätze die Team-Velocity pro Sprint. Wieviele Story Points glaubt das Team pro Sprint schaffen zu können? Gerade bei neuen Teams ist das schwierig, weil sie noch keine Erfahrungswerte haben. In dem Fall hilft eine Schätzung und dann das Messen über die ersten Sprints hinweg.
- "Prioritize User Stories": Priorisieren der User Stories. Stories mit „High-Risk“ und hohem Wert zuerst. Auf welche Persona / Endanwendergruppe fokussieren wir uns zuerst? Was müssen wir tun, um zeigen zu können, dass der Prozeß durchläuft (Geradeaus-Fall). Gibt es „Forschungsaufträge (Spikes)“ um technische Unsicherheiten abzuklären?
- "Select Stories and a release date": Basierend auf Sprint-Länge und Team-Velocity: Selektiere Stories und ein Release-Datum. Wieviele Sprints braucht das Team insgesamt? Muss das Produkt zu einem bestimmten Termin fertig sein: Wieviele User Stories können wir maximal bis dahin fertig bekommen.
Schritte zur Erstellung eines Release-Planes
Falls das Ergebnis nicht zufriedenstellend ist, zurück zu Punkt 1: Welche Stories können wir ggfs. nicht realisieren oder können später kommen? Gibt es Anwendergruppen, die wir erst später bedienen? Wiederhole den Prozess so lange, bis die Bedingungen, das das kommende Release als erfolgreich angesehen wird, am besten gegeben ist.
Fazit
Ein Release-Plan hilft bei der schrittweisen Erreichung unseres Ziels durch Definition von Zwischenzielen. Er macht auf einem High-Level transparent, was bis wann erreicht werden soll. Dabei hilft er dem Entwicklungsteam sich zu fokussieren und die Erwartungshaltung der Stakeholder zu managen.
Er ist dabei nicht „fest in Stein gemeisselt“, sondern er kann dabei nach jeden Sprint, spätestens aber nach jedem Release aktualisiert werden.
Kommentare
Kommentar veröffentlichen