Roman Pichler arbeitet als unabhängiger Berater, Trainer und Coach mit den Schwerpunkten Lean und Scrum. Seine Kunden schätzen seine langjährige und vielseitige Erfahrung in der Anwendung von Scrum. Diese beinhaltet die Einführung von Scrum bei Start-ups und bei großen globalen Unternehmen. Mehr Informationen finden Sie unter www.romanpichler.com.
Roman Pichler
roman.pichler@romanpichler.com
Lektorat: Christa Preisendanz
Copy-Editing: Annette Schwarz, Ditzingen
Satz und Herstellung: Frank Heidt
Umschlaggestaltung: Helmut Kraus, www.exclam.de
Druck und Bindung: Koninklijke Wöhrmann B.V., Zutphen, Niederlande
Bibliografische Information Der Deutschen Bibliothek
Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über <http://dnb.ddb.de> abrufbar.
ISBN:
Buch 978-3-89864-478-5
PDF 978-3-89864-849-3
1. Auflage 2008
Copyright © 2008 dpunkt.verlag GmbH
Ringstraße 19
69115 Heidelberg
Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen.
Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen.
Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autor noch Verlag können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen.
5 4 3 2 1 0
Für Melissa
The only question regarding Roman Pichler’s new book on Scrum is, »where is the English version?« I’ve known and worked with Roman for years with Scrum, so the book is full of practical advice. This book not only faithfully documents Scrum, it also provides a state of the art view of the most current thinking about using Scrum. More information about maintaining the Product Backlog, planning and managing releases, the retrospective, and people management reflect sound practices to know and employ. Since the use of Scrum depends on common sense, these are often presented severally. This book is a solid addition to the compendium of books to aid the Scrum practitioner and ScrumMaster.
Ken Schwaber
Scrum Evangelist and Author
Boston, August 2007
1 Einleitung
1.1 Was ist Scrum?
1.1.1 Agiles Managementframework
1.1.2 Empirischer Prozess
1.1.3 Kein Wundermittel, sondern harte Arbeit
1.1.4 Scrum und schlankes Management
1.2 Warum Scrum?
1.2.1 Probleme frühzeitig erkennen, Handlungsspielraum sichern
1.3 Warum dieses Buch?
1.4 Mehr Informationen zu Scrum
1.5 Danke
2 Scrum im Überblick
3 Die Rollen
3.1 Product Owner
3.1.1 Die Aufgaben des Product Owner
3.1.2 Der Product Owner als Chief Engineer
3.1.3 Häufiger Fehler: Product Owner nicht verfügbar oder nicht bevollmächtigt
3.2 Team
3.2.1 Individuen und Interaktionen
3.2.2 Teameigenschaften
3.2.3 Teamprozesse: Einer für alle, alle für einen
3.2.4 Teamnormen und Standards
3.2.5 Visueller Arbeitsplatz
3.3 ScrumMaster
3.3.1 Die Aufgaben des ScrumMaster
3.3.2 Der ideale ScrumMaster
3.3.3 Wer ernennt den ScrumMaster?
3.3.4 ScrumMaster und Mitarbeiterführung
3.3.5 Der Wandel der ScrumMaster-Rolle
3.4 Die Rolle des Projektleiters
3.4.1 Scrum und traditionelle Projektmanagementaufgaben
3.4.2 Häufiger Fehler: Der ScrumMaster als Projektleiter
4 Anforderungen
4.1 Klassisches Requirements Engineering und Anforderungsbeschreibung in Scrum
4.1.1 Herkömmliche Verfahren zur Anforderungsbeschreibung
4.1.2 Beschreibung der Anforderungen in Scrum
4.2 Das Product Backlog
4.2.1 Das Product Backlog ist ein lebendes Dokument
4.2.2 Die Einträge sind priorisiert
4.2.3 Die Einträge weisen einen unterschiedlichen Detaillierungsgrad auf
4.2.4 Die Einträge sind abgeschätzt
4.2.5 Die Form des Product Backlog
4.3 Das Produktkonzept
4.3.1 Von der Produktidee zum Product Backlog
4.3.2 Qualitative Marktforschung
4.3.3 Nutzen des Produktkonzepts
4.3.4 Kurz und knapp
4.4 Inkrementelle Innovation
4.4.1 Begriffsklärung
4.4.2 Vorgehensweise
4.4.3 Vorteile
4.5 Das Auffüllen des Product Backlog
4.5.1 Umfang und Vollständigkeit
4.5.2 Unterschiedliche Detaillierungsstufen
4.5.3 Arbeiten mit Themen
4.5.4 Anwendung
4.6 Der Anforderungsworkshop
4.7 Die Priorisierung des Product Backlog
4.7.1 Gründe für die Priorisierung
4.7.2 Kriterien für die Priorisierung
4.7.3 Das Kano-Modell zur Bestimmung von Nutzen
4.7.4 Identifizieren und behandeln von Risiken
4.7.5 Kostenbestimmung
4.7.6 Die Wert-Risiko-Matrix
4.7.7 Die MuSCoW-Priorisierung
4.8 Merkmale guter Anforderungen
4.8.1 Unabhängig
4.8.2 Verhandelbar
4.8.3 Nützlich
4.8.4 Schätzbar
4.8.5 Klein
4.8.6 Testbar
4.9 Benutzergeschichten im Product Backlog
4.9.1 Benutzergeschichten im Überblick
4.9.2 Nutzen
4.9.3 Grenzen
4.10 Anwendungsfälle im Product Backlog
5 Releasemanagement
5.1 Die Releaseplanung im Überblick
5.1.1 Releaseplan? Wir arbeiten doch mit Sprints!
5.1.2 Keine Überstunden und keine Qualitätskompromisse
5.2 Planungsebenen in Scrum
5.2.1 Die Releaseplanung
5.2.2 Die Sprint-Planung
5.2.3 Die Planung des Arbeitstags
5.2.4 Die Beziehung von Releaseplan und Sprint Backlog
5.3 Projektsteuerungsgrößen und Projekterfolg
5.3.1 Steuerungsgrößen
5.3.2 Kriterien für den Projekterfolg richtig kommunizieren
5.4 Releasestrategie
5.4.1 Wertschöpfung in Scrum
5.4.2 Explorationssprints
5.5 Schätzen und Planen
5.5.1 Einführung
5.5.2 Aufwandsbestimmung
5.5.3 Schätzklausur und Planungspoker
5.5.4 Die optimale Sprint-Länge
5.5.5 Die Entwicklungsgeschwindigkeit
5.5.6 Der Releaseplan
5.6 Verfolgen des Projektfortschritts
5.6.1 Einführung
5.6.2 Der Release-Burndown-Bericht
5.6.3 Entwicklungsgeschwindigkeitsbericht
5.6.4 Themenpark
5.7 Optimieren des Projektfortschritts
5.7.1 Vorausschauende Planung
5.7.2 Minimieren von Variation
5.7.3 Eliminieren von Verschwendung
5.7.4 Vermeiden von Überlastung
5.7.5 Ausgewogener Arbeitsanfall
5.8 Projektmanagementwerkzeuge
6 Sprints
6.1 Sprints im Überblick
6.2 Eigenschaften von Sprints
6.2.1 Erstellen eines Produktinkrements
6.2.2 Schutz vor Veränderungen
6.2.3 Verhältnis von Scrum-Besprechungen und Umsetzungsaktivitäten
6.2.4 Wahl eines geeigneten Wochentags für Sprint-Beginn und -Ende
6.3 Vorbereitung der Sprint-Planungssitzung
6.3.1 Identifizieren des Sprint-Ziels
6.3.2 Vorbereiten der Anforderungen
6.3.3 Identifizieren der Teamkapazität
6.3.4 Organisation der Räumlichkeiten
6.4 Die Sprint-Planungssitzung
6.4.1 Ziel
6.4.2 Aufgabenverteilung
6.4.3 Die Planungsschritte im Überblick
6.4.4 Etablierung eines gemeinsames Verständnisses des Sprint-Ziels
6.4.5 Erzielen eines gemeinsames Verständnisses der ausgewählten Anforderung
6.4.6 Identifizieren und Abschätzen der benötigten Aktivitäten
6.4.7 Überprüfen von Kapazität und Leistungsvermögen
6.4.8 Abschluss der Planungssitzung
6.4.9 Typische Fehler
6.5 Das Sprint Backlog
6.5.1 Übersicht
6.5.2 Aktualisierung
6.5.3 Karten und Stellwand
6.6 Die Daily-Scrum-Besprechung
6.6.1 Zeitpunkt, Dauer und Ort
6.6.2 Zielsetzung
6.6.3 Teilnehmer
6.6.4 Ablauf
6.6.5 Vorbereitungsarbeiten
6.6.6 Nützliche Techniken
6.7 Das Sprint-Review
6.7.1 Zeitpunkt, Dauer und Ort
6.7.2 Zielsetzung
6.7.3 Teilnehmer
6.7.4 Ablauf
6.7.5 Vorbereitungsarbeiten
6.7.6 Nützliche Techniken
6.7.7 Typische Fehler
6.8 Die Sprint-Retrospektive
6.8.1 Zeitpunkt, Dauer und Ort
6.8.2 Zielsetzung
6.8.3 Teilnehmer
6.8.4 Ablauf
6.8.5 Vorbereitungsarbeiten
6.8.6 Nützliche Techniken
6.8.7 Typische Fehler
6.9 Frühzeitiges Beenden des Sprint
6.10 Verfolgen des Sprint-Fortschritts
6.10.1 Der Sprint-Burndown-Bericht
6.10.2 Der Hindernisbericht
6.10.3 Der Sprint-Endebericht
6.11 Optimieren des Sprint-Fortschritts
6.11.1 Kontinuierliches Review
6.11.2 Keine halben Sachen
6.11.3 Überlastungen vorbeugen
7 Große und verteilte Projekte
7.1 Größe, Verteilung und Zusammenarbeit
7.1.1 Große Projekte
7.1.2 Verteilte Projekte
7.1.3 Integration und Kommunikation
7.2 Bevor Sie skalieren oder verteilen
7.2.1 Klein anfangen
7.2.2 Klare Ziele
7.2.3 Brook’s Law
7.3 Organisches Wachstum
7.3.1 Zurück zur Natur
7.3.2 Grundlagen schaffen
7.3.3 Langsam wachsen
7.4 Optionen für die Projektorganisation
7.4.1 Product Owner Team
7.4.2 Feature- vs. Komponententeams
7.4.3 Beispiele für die Organisation großer und verteilter Projekte
7.5 Praktiken für große und verteilte Projekte
7.5.1 Anforderungsmanagement
7.5.2 Multiteamplanung
7.5.3 Multiteamkoordination
7.5.4 Projektweite Normen
7.5.5 Infrastruktur
7.5.6 Agile Entwicklungspraktiken
7.6 Tipps für verteilte Projekte
7.6.1 Verteilung entlang der Teamgrenzen
7.6.2 Product Owner und ScrumMaster pro Team und Standort
7.6.3 Schrittweises Verteilen
7.6.4 Regelmäßiger Austausch der Projektmitglieder vor Ort
8 Unternehmensweite Einführung von Scrum
8.1 Unternehmenswandel und Scrum
8.1.1 Gründe für den Wandel
8.1.2 Tragweite und Dauer des Wandels
8.1.3 Merkmale des Wandels
8.2 Einführungsphasen
8.2.1 Pilotphase
8.2.2 Etablierungsphase
8.3 Praktiken zur Einführung von Scrum
8.3.1 Bewusstsein schaffen
8.3.2 Die Geschäftsleitung geht mit gutem Beispiel voran
8.3.3 Die Einführung von Scrum als Scrum-Projekt managen
8.3.4 Eine glaubhafte Vision entwickeln
8.3.5 Oft und richtig kommunizieren
8.3.6 Mitarbeiter bevollmächtigen
8.3.7 Veränderungen schrittweise vornehmen
8.3.8 Nach Perfektion streben
Anhang
Glossar
Literaturverzeichnis
Index
Scrum [skr∧m] ist ein agiles Managementframework zur Entwicklung von Software, das aus wenigen klaren Regeln besteht. Diese beinhalten die Anwendung der drei Rollen Product Owner, Team und ScrumMaster, die Verwendung eines priorisierten Product Backlog sowie das Erstellen von Produktinkrementen innerhalb kurzer Arbeitszyklen, die Sprints genannt werden. Scrum lässt sich auf alle Arten der Softwareentwicklung anwenden: Software als eigenständiges Produkt und Software als Bestandteil eines Produkts, Software als unternehmensinterne Lösung oder Software, die im Auftrag eines Kunden entwickelt wird; Software, die neu entwickelt, und Software, die gewartet wird.
Als agiles Framework verkörpert Scrum die Werte des Agilen Manifests [Beck et al. 2001]. Dieses stellt den Menschen in den Mittelpunkt der Softwareentwicklung (individuals and interactions, collaboration). Schließlich entsteht Software nur durch die Interaktion und Kollaboration von Menschen. Scrum ist nicht technologie- oder toolorientiert, sondern fordert und fördert die enge Zusammenarbeit der Beteiligten. Das Agile Manifest formuliert außerdem die Optimierung von Kundenzufriedenheit und Wertschöpfung als Ziel der Softwareentwicklung (working software, collaboration, responding to change). Für kommerzielle Softwareprojekte zählt letztendlich, ob die wirtschaftlichen Ziele des Projekts erreicht wurden, ohne dabei Raubbau an den Mitarbeitern oder zukünftigen Softwareversionen und damit Kundenzufriedenheit und Wertschöpfung zu treiben. In Scrum ist der Product Owner für die Erreichung der wirtschaftlichen Ziele des Projekts verantwortlich und steuert dieses durch das priorisierte Product Backlog und den Releaseplan.
Scrum ist ein empirischer Prozess. Arbeitsweise und Produkt werden regelmäßig begutachtet und angepasst (sog. inspect and adapt). Am Ende eines jeden Sprint beurteilt der Product Owner die Angemessenheit der erzielten Ergebnisse, und das Team reflektiert über seine Zusammenarbeit und die Anwendung des Prozesses. So lernt das Projekt von Sprint zu Sprint dazu und kann sich kontinuierlich verbessern. Scrum ist keine herkömmliche Methodologie und keine Komplettlösung. Scrum schreibt nicht detailliert vor, was wann zu tun ist, sondern fördert die Kreativität der Mitarbeiter. Daher beinhaltet Scrum auch keine Verfahrensanweisungen oder Templates: Soweit diese hilfreich sind, müssen Sie sie für Ihr Projekt und Ihre Organisation selbst erarbeiten.
Scrum ist kein Wundermittel, das, einmal in eine Organisation eingeführt, quasi von selbst alles besser werden lässt. Im Gegenteil: Oft sind die ersten Sprints für Projektmitarbeiter und Management schwierig. Hindernisse und Probleme treten auf und müssen beseitigt werden, um zielgerichtet weiterarbeiten zu können. Dabei müssen alle Beteiligten nicht nur die neuen Spielregeln erlernen, sondern auch alte Angewohnheiten ablegen. Diese beinhalten das Zuweisen von Aufgaben an Mitarbeiter und das Erstellen qualitativ minderwertiger Software. Das erfolgreiche Anwenden von Scrum ist also ein Lernprozess, der Zeit und Geduld benötigt und neben den Teammitgliedern, dem ScrumMaster und dem Product Owner auch das Management betrifft. Seien Sie dabei auf der Hut: Oft ist es verlockend, nicht die eigenen Arbeitspraktiken, sondern Scrum zu ändern.
Die Geburtsstunde von Scrum fällt in das Jahr 1993: In diesem Jahr wurde das erste Scrum-Projekt durchgeführt [Sutherland 2004]. Beeinflusst wurde Scrum von Anfang an von neuen, innovativen Wegen in der Produktentwicklung, wie sie insbesondere von japanischen Unternehmen pilotiert wurden [Takeuchi&Nonaka 1986]. Diese neue Form des Managements und der Produktentwicklung wird heute als »schlank« (lean) bezeichnet [Womack&Jones 1996]. Besonders Toyota hat bei der Entwicklung schlanker Entwicklungsprozesse eine führende Rolle eingenommen [Liker 2003]. Ich verweise in diesem Buch auf erprobte Vorgehensweisen der schlanken Produktentwicklung [Morgan&Liker 2006, Ward 2007] und der schlanken Softwareentwicklung [Poppendieck 2003], wo diese Scrum-Praktiken erklären oder sinnvoll ergänzen. Scrum ist übrigens ein schlanker Prozess, der ein Ziehsystem (pull) einsetzt und Überlastungen systematisch vermeidet.
Softwareentwicklung ist schwierig und herausfordernd. An dieser Tatsache ändert auch Scrum nichts. Denn das Wesen der Softwareentwicklung ist Innovation und Kreativität: Jedes Softwareentwicklungsprojekt befriedigt neue Kundenbedürfnisse. Um Bedürfnisse aufzudecken, zu verstehen und die richtige Lösung zu entwickeln, benötigen wir eine ordentliche Portion Kreativität. Dies fällt vielen Organisationen nicht leicht: Oft scheitern Softwareentwicklungsprojekte oder liefern Ergebnisse, die weder Kunden zufriedenstellen noch die angestrebten wirtschaftlichen Ziele erreichen. Organisationen und Projekte verfallen dabei in einen Teufelskreislauf:
Abb. 1–1 Ein Teufelskreislauf, Quelle: [Ward 2007]
Sind die Ziele in Gefahr, so bitten wir häufig die Projektmitarbeiter länger zu arbeiten und fügen neue Mitarbeiter zum Projekt hinzu. Bedingt durch Hektik und Stress, längere Arbeitszeiten und schlecht eingearbeitete Projektmitglieder sinken die Softwarequalität und die Moral der Mitarbeiter. Dies veranlasst das Management, mehr Kontrollen einzuführen, die die Entwicklung weiter verlangsamen.
Softwareentwicklungsprojekte weisen eine suboptimale Arbeitsorganisation nicht etwa deswegen auf, weil Management und Mitarbeiter nicht guten Willens sind. Das zentrale Problem traditioneller Vorgehensweisen besteht darin, dass wir frühzeitig versuchen, alle Eventualitäten und Arbeitsdetails zu antizipieren und einzuplanen, um anschließend unseren Plan auszuführen. Gleichzeitig erhalten wir erst spät im Projekt Rückmeldung über den tatsächlichen Fortschritt, meist erst dann, wenn die Software integriert und getestet wird. In Scrum führen wir alle Softwareentwicklungsaktivitäten innerhalb eines Sprint aus. So bekommen wir bereits nach wenigen Wochen Rückmeldung über den Fortschritt und etwaige Probleme und Hindernisse. Die Projektplanung fußt auf dem tatsächlichen Fortschritt des Projekts. Dabei gehen wir vor, wie in Abbildung 1–2 dargestellt.
Abb. 1–2 Der Scrum-Kreislauf
Durch die Verwendung von kurzen Arbeitszyklen, an deren Ende ein Mehrwert entstanden sein muss, werden Probleme in Scrum frühzeitig offensichtlich. Wir haben so die Möglichkeit, rechtzeitig die Ursache des Übels aufzufinden, Lösungsoptionen zu entwickeln und die richtigen Maßnahmen zu ergreifen. Das frühe Auffinden von Problemen eröffnet uns einen größeren Handlungsspielraum und Flexibilität. Finden wir Probleme erst spät im Projekt, so sind viele Entscheidungen bereits gefällt und wir meist zur Schadensbegrenzung verdammt. Ursachenanalyse zu betreiben und die richtigen Verbesserungsmaßnahmen zu ergreifen, ist dabei kein Fingerschlecken, sondern harte Arbeit.
Wenn Sie Scrum konsequent einsetzen, so sollten Sie in den nachfolgend aufgeführten Bereichen positive Veränderungen erfahren.
Die Mitarbeiterzufriedenheit steigt bedingt durch Maßnahmen wie Bevollmächtigung und Selbstorganisation. Der Großteil der Scrum-Projektmitarbeiter bei Yahoo! beispielsweise beantwortete in einer Umfrage die Frage nach Verbesserung der Teammoral positiv [Deemer&Benefield 2006].
Durch die enge Zusammenarbeit mit Kunden und deren Einbeziehung beispielsweise in Anforderungsworkshops und Sprint-Reviews stellen wir sicher, dass die resultierende Software die Kundenbedürfnisse befriedigt.
Softwareentwicklungsprojekte existieren, um einen wirtschaftlichen Nutzen zu erzielen. Scrum hilft, diesen durch folgende positive Auswirkungen zu erreichen oder zu übertreffen:
Time to market
Scrum ermöglicht durch eine strikte Priorisierung der Anforderungen, durch die Vermeidung von Fehlleistungen und Überlastung, Software frühzeitig auszuliefern.
Qualität
Scrum richtig angewandt führt zu einer Verbesserung der Softwarequalität. Ohne adäquate Qualität lassen sich auslieferbare Produktinkremente nicht innerhalb weniger Wochen erstellen.
Produktivität
Durch enge Kollaboration, Selbstorganisation, durch Bevollmächtigung, durch das Vermeiden von Fehlleistungen und das Fokussieren auf die wichtigsten Anforderungen steigert Scrum die Produktivität. Yahoo! stellte beispielsweise eine deutliche Verbesserung der Produktivität beim Einsatz von Scrum fest [Deemer&Benefield 2006].
Das vorliegende Buch bietet eine systematische und umfassende Beschreibung von Scrum und ergänzt die existierenden Bücher. Meine Intention ist nicht, dem Leser eine detaillierte Anleitung zur Anwendung von Scrum oder gar eine Scrum-Bibel zur Verfügung zu stellen. Dies widerspräche dem Wesen von Scrum als einem empirischen Prozess, der auf die spezifischen Bedürfnisse eines Projekts angewandt werden muss und sich weiterentwickelt. Folgen Sie den Empfehlungen dieses Buchs daher nicht blind, sondern reflektieren Sie über Ihre Situation und passen Sie ggf. die Empfehlungen entsprechend an! Das Buch behandelt einführende und fortgeschrittene Themen. Stellen Sie sicher, dass Sie die Grundlagen verstanden haben, bevor Sie weiterführende Kapitel wie »Große und verteilte Projekte« lesen.
Weitere Informationen zu Scrum sowie Scrum-Schulungen wie Certified Scrum-Master (CSM) und Certified Scrum Product Owner (CSPO) finden Sie auf der Webseite der Scrum Alliance, www.scrumalliance.org.
Ohne die Unterstützung und Mitarbeit vieler Menschen wäre dieses Buch nie möglich gewesen. Besonders bedanken möchte ich mich bei Ken Schwaber, Mike Cohn, Jutta Eckstein, Preston Smith und Nancy van Schooenderwoert, ohne deren Unterstützung und Ermutigung ich dieses Buch wahrscheinlich nie geschrieben hätte. Jutta Eckstein ist quasi die Patentante des Buchs, da sie die Zusammenarbeit zwischen dem dpunkt.verlag und mir initiiert hat. Außerdem möchte ich mich ganz herzlich bei meinen Reviewern bedanken: Jutta Eckstein, Stefan Roock, Sabine Canditt, Jens Coldewey, Bernd Oestereich, Nicolas Arnold und Jiri Lundak.
Scrum besteht aus wenigen klaren Regeln. Damit Scrum funktioniert, müssen diese konsequent und diszipliniert angewandt werden, auch wenn dies anfangs nicht leichtfällt. Scrum schafft ein hohes Maß an Transparenz: Alle Aktivitäten, die zur Erstellung der Software notwendig sind, werden innerhalb weniger Wochen ausgeführt. So wird der tatsächliche Projektfortschritt schnell sichtbar.
Abbildung 2–1 gibt einen Überblick über die wesentlichen Elemente von Scrum, vgl. [Schwaber&Beedle 2001]. Diese werden in den nachfolgenden Kapiteln ausführlich beschrieben.
Abb. 2–1 Scrum im Überblick
Wie Abbildung 2–1 zeigt, besteht ein Scrum-Projekt aus einer Reihe kurzer Arbeitszyklen, die Sprints genannt werden. Jeder Zyklus wandelt Anforderungen aus dem Product Backlog in ein auslieferbares Produktinkrement um, also in lauffähige, getestete und dokumentierte Software. Die Dauer eines Sprint beträgt maximal 30 Tage. Jeder Sprint endet zum vereinbarten Termin (timeboxing). Bevor ein Scrum-Projekt starten kann, müssen Product Owner, Team und ScrumMaster einsatzbereit sein. Zudem muss das Product Backlog initial gefüllt sein. Dieses legt fest, welche Anforderungen und Arbeitsergebnisse erbracht werden müssen, um das Projektziel zu erreichen. Alle Anforderungen sind priorisiert.
Zu Beginn jedes Sprint führen wir eine Sprint-Planungssitzung durch, in der das Team Anforderungen auswählt und das Sprint Backlog erstellt. Dieses beschreibt alle Aktivitäten zur Umsetzung der Anforderungen in ein Produktinkrement. Anschließend startet das Team mit der Realisierung der Anforderungen. Jeden Tag am selben Ort zur selben Zeit findet eine kurze Besprechung statt, die Daily Scrum genannt wird. Diese ermöglicht dem Team, die anstehende Arbeit zu koordinieren und Hindernisse systematisch zu identifizieren. Am Ende des Sprint werden die entstandenen Arbeitsergebnisse vom Product Owner im Sprint-Review überprüft und abgenommen. Partiell fertiggestellte oder defekte Arbeitsergebnisse gelten dabei als nicht erledigt. Im Anschluss an das Sprint-Review findet die Sprint-Retrospektive statt, in der das Team über seine Zusammenarbeit reflektiert und Verbesserungsmaßnahmen ableitet. Die Verbesserungsmaßnahmen werden anschließend in die nächste Sprint-Planungssitzung eingebracht.
Scrum kennt drei Rollen: Product Owner, Team und ScrumMaster. Alle drei Rollen müssen adäquat besetzt sein und eng zusammenarbeiten, um ein Scrum-Projekt zum Erfolg zu führen. Schließlich stellt das Agile Manifest nicht umsonst fest, dass Individuen und Interaktionen wichtiger sind als Prozesse und Werkzeuge [Beck et al. 2001]. Typischerweise arbeitet ein Product Owner mit einem Team zusammen. Jedes Team hat einen eigenen ScrumMaster, und jeder Scrum-Master betreut ein Team.
Die drei Rollen weisen die folgenden Verantwortlichkeiten auf: Der Product Owner entscheidet, welche Anforderungen für eine Version umgesetzt werden und wann die Software ausgeliefert wird. Das Team führt die Arbeit aus, entscheidet, wie viele Anforderungen es in einem Sprint verlässlich in ein Produktinkrement umsetzen kann, und organisiert seine Arbeit selbstständig. Der ScrumMaster hilft allen Beteiligten, Scrum richtig anzuwenden, und unterstützt das Team dabei, seine Produktivität kontinuierlich zu verbessern. Die Anwendung der Rollen hat Konsequenzen für das Produktmanagement und die Entwicklung: Beide Partner müssen ihren Beitrag dazu leisten, dass Scrum richtig gelebt wird, und die hierfür notwendigen Veränderungen vornehmen.
Unterschätzen Sie nicht, wie wichtig das richtige Verständnis und die richtige Besetzung der Rollen für den erfolgreichen Einsatz von Scrum sind. Ich beobachte bei Scrum-Projekten in Schwierigkeiten immer wieder, dass die Rollen nicht richtig verstanden und nicht richtig besetzt sind.
Der Product Owner in Scrum repräsentiert die Endkundenbedürfnisse, steuert die Softwareentwicklung und arbeitet mit dem Team über den gesamten Projektverlauf eng zusammen. Die Rolle ist also weit mehr als die eines traditionellen Programm-, Produkt- oder Projektmanagers. Die Rolle vereint Produkt- und Projektmanagementaufgaben in sich und ist zugleich fest in die Softwareentwicklung integriert. Der Product Owner nimmt in Scrum eine zentrale Stellung ein. Er beeinflusst den Erfolg eines Scrum-Projekts entscheidend und ist für diesen verantwortlich.
Scrum beendet ineffektive Arbeitspraktiken: Anforderungen werden nicht mehr zu Beginn des Projekts komplett aufgeschrieben, eingefroren und an die Entwicklung übergeben. Die Umsetzung des Projekts wird nicht länger an einen Projektleiter delegiert. Als Product Owner bestimmen Sie, wohin die Reise geht, und nehmen auf dem Fahrersitz Platz.
Die Arbeit als Product Owner ist im Regelfall eine Vollzeitaufgabe. Dies ist insbesondere dann der Fall, wenn es sich um ein innovatives oder komplexes Projekt handelt. Seien Sie sich bewusst: Der Projektfortschritt leidet, wenn der Product Owner für seine Aufgaben nicht qualifiziert ist oder für diese nicht genügend Zeit aufwenden kann. Die Besetzung der Product-Owner-Rolle ist abhängig von der Projektart und der Größe sowie der Struktur des Projekts. Häufig wird die Rolle mit einem Produktmanager oder Marketingmitarbeiter gefüllt.
Der Product Owner ist für das Erfassen der Kundenbedürfnisse und die Beschreibung der Anforderungen verantwortlich. Dies beinhaltet das Erstellen des Produktkonzepts und des Product Backlog. Der Product Owner bearbeitet das Product Backlog kontinuierlich: Er fügt neue Anforderungen ein und entfernt existierende. Er verfeinert und priorisiert Anforderungen. Damit der Product Owner die Bedürfnisse der Kunden und Anwender beschreiben und dem Team kommunizieren kann, muss er diese genau kennen und in der Lage sein, Mehrwert aus Kundensicht zu bestimmen. Eine enge und regelmäßige Abstimmung mit den Kunden und Anwendern sowie anderen Interessenvertretern ist hierzu notwendig, beispielsweise in Form von gemeinsamen Workshops zur Identifizierung und Beschreibung von Anforderungen.
Der Product Owner ist in Scrum für das Erreichen der Projektziele und damit für den Erfolg des Projekts (return on investment, ROI) verantwortlich. Er allein entscheidet über Auslieferungszeitpunkt, Funktionalität und Kosten der Softwareversion. Der Product Owner erstellt und aktualisiert den Releaseplan und die Releaseberichte. Anders als traditionelle Produktmanager delegiert er die Leitung des Entwicklungsprojekts also nicht an einen Projektmanager oder Teamleiter. Im Gegenteil: Der Product Owner führt wichtige Projektmanagementaufgaben selbst aus. Dabei steuert er die Entwicklung über die Formulierung von Anforderungen und deren Priorisierung im Product Backlog.