Scrum

+ andere TechDocs
+ Softwareentwicklungsprozess
+ scrumalliance.org
+


Scrum ist ein Managementframework und Vorgehensmodell zur agilen Entwicklung von Software im Team, eingeführt von Ken Schwaber, Jeff Sutherland und Mike Beedle.

Im Folgenden werden einige Aspekte und Schlüsselbegriffe zu Scrum erläutert, was als Erinnerungsstütze hilfreich sein kann. Um die Vorgehensweise, die Philosophie und die Ideen von Scrum zu verstehen, ist die Teilnahme an einem Scrum-Kurs oder die Lektüre eines Buches zu Scrum notwendig, beispielsweise:



Inhalt

  1. Wichtige Merkmale von Scrum
  2. Manifesto for Agile Software Development
  3. Rollen
    Product Owner, ScrumMaster, Team, Stakeholder
  4. Dokumentation
    Produktkonzept, Product Backlog, Sprint Backlog, Sprint-Burndown-Bericht, Sprint-Endbericht, Verbesserungsmaßnahmen, Hindernisliste, Releaseplan, Releasebericht, Tools
  5. Zeitliche Strukturierung der Tätigkeiten
    Übersicht, Projekt, Sprint, Tag
  6. Große Projekte
  7. Resümee
    Mögliche Kritikpunkte, Resümee



Wichtige Merkmale von Scrum

Agil
Scrum zählt zu den agilen Vorgehensmodellen zum Softwareentwicklungsprozess (siehe unten).
Empirischer Prozess
Scrum ist ein empirischer Prozess: Es gibt in Scrum keine starren Templates oder Verfahrensanweisungen. Der Prozess und die Arbeitsweise werden in Reviews und Retrospektiven immer wieder begutachtet und gegebenfalls angepasst, um Verbesserungen zu erreichen ("inspect and adapt").
Iterativ / Inkrementell
In maximal 1 Monat langen Zyklen ("Sprint" genannt) werden iterativ (möglichst auslieferbare) Produkt-Inkremente erstellt. Vorteile: überschaubarere Entwicklungseinheiten, schnellere "Time to Market", früheres "Break-even" und "Return on Investment (ROI)", frühere Rückmeldung und Anpassungsmöglichkeit und Risikominimierung.
Sprint / Timebox
Die Softwareentwicklung verläuft iterativ in Zyklen von fester Länge ("Timebox"), maximal 1 Monat lang, die Sprint genannt werden.
Zu den sich in den Sprint-Zyklen typischerweise wiederholenden Tätigkeiten und der zeitlichen Strukturierung siehe unten.
Rollen
In Scrum gibt es viele der sonst üblichen Rollen nicht, wie zum Beispiel Projektmanager und Projektleiter. Stattdessen gibt es die Rollen Product Owner, ScrumMaster und Team.
Dokumentation
Auch in agilen Entwicklungsprozessen werden Dokumentationen benötigt, siehe unten.


Manifesto for Agile Software Development

Scrum ist ein Vorgehensmodell zur agilen Softwareentwicklung.

Wichtige Grundsätze von Scrum finden sich wieder in dem 2001 verfassten Manifesto for Agile Software Development:

Diese Grundsätze werden allerdings manchmal missverstanden: Die jeweils zuerst genannten (links stehenden) Ziele sind zwar wichtiger als die anderen (rechts stehend), aber auch letztere sind wichtig (z.B. Dokumentation):
"That is, while there is value in the items on the right, we value the items on the left more".



Rollen

Scrum definiert drei Rollen und zusätzlich müssen Stakeholder berücksichtigt werden:



Dokumentation



Zeitliche Strukturierung der Tätigkeiten

Im Groben unterteilt sich die zeitliche Strukturierung folgendermaßen:

  • Während der gesamten Projektlaufzeit einmalige Tätigkeiten, zum Beispiel zur Projektvorbereitung vor den Sprints
  • Die Tätigkeiten während der iterativen Sprints
  • Die Tätigkeiten während des einzelnen Tages

Dies ist in den folgenden drei Tabellen dargestellt. Bitte beachten Sie, dass dies nicht als starrer Zeitplan gemeint ist und dass auch Abweichungen bei den Tätigkeiten sinnvoll sein können. Wichtiger als die Einhaltung von "Checklisten" ist das Verständnis der "Scrum-Philosophie".

Scrum-Überblick

Gesamte Projektlaufzeit:
Phase, TätigkeitErgebnisBemerkungVerantwortlich
(und Beteiligte)
Projektstart Produktkonzept Vision, Produktidee, Funktion, wesentliche Leistungsmerkmale, Zielgrößen, event. Roadmap Product Owner
(Kunde, Marketing, Vertrieb, Service, Interessenvertreter)
Vorbereitung
Releaseplanung
vorläufiger
Releaseplan
Zeit- und Kostenrahmen, Termine für Zwischenergebnisse und Endergebnis
(anfangs nur sehr grob)
Product Owner
Vorbereitung
Product Backlog
vorläufiges
Product Backlog
Liste der Anforderungen:
Prio, User Story, Akzeptanzkriterien, Risiken, Aufwandschätzung
(anfangs nur Wichtiges detailliert, Unwichtiges grobgranular/unvollständig)
Product Owner
(Kunde, Marketing, Vertrieb, Service, Interessenvertreter)
Anforderungsworkshop Product Backlog Verfeinerung der Anforderungen (entsprechend "INVEST") Product Owner
(Team, Kunde, Marketing, Vertrieb, Service)
Schätzklausur Product Backlog "Estimation Meeting": Aufwandschätzung
(z.B. in "Story Points", z.B. per "Planungspoker")
Team
(Product Owner, ScrumMaster)
Sprint 1 s.u. s.u., max. 1 Monat je Sprint Team, ScrumMaster, Product Owner
Sprint 2      
Sprint ...      
Sprint n      
 
Jeweiligerer einzelner Sprint (Timeboxing, typischerweise 1 Monat, nicht länger, manchmal kürzer, z.B. 2 Wochen):
Phase, TätigkeitErgebnisBemerkungVerantwortlich
(und Beteiligte)
Sprint-Planungssitzung Sprint Backlog Jeder Sprint beginnt mit der Sprint-Planungssitzung,
max. 1 Tag (max. 5 % der Sprint-Dauer),
wahlweise in zwei Teilen:
Teil 1:
Definition des Sprint-Ziels (Sprint Goal) und Auswahl der während der Sprint-Dauer umzusetzenden Anforderungen aus dem Product Backlog in das "Selected Product Backlog".
Dazu Teamkapazität berechnen, Urlaub berücksichtigen, den Overhead durch zusätzliche nicht dem Projekt direkt nützende Aufwände berücksichtigen (wird oft auf bis zu 35 % der Arbeitszeit geschätzt).
Teil 2:
Das Team erstellt das "Sprint Backlog", also die möglichst detaillierte Liste der zu den ausgewählten Items notwendigen Aktivitäten/Aufgaben.
Team
(Product Owner, ScrumMaster)
Softwareentwicklung Design,
Implementierung,
Konfiguration,
Tests, Doku etc.
Aktivitäten/Aufgaben wie im Sprint Backlog definiert,
zuerst die hoch priorisierten
Team
Auswählen des
Sprint-Ziels für den
Folge-Sprint
Sprint-Ziel Erwartetes Ergebnis des Folge-Sprints definieren Product Owner
Vorbereitung der
Sprint-Planungssitzung
des Folge-Sprints,
beinhaltet:
- Anforderungsworkshop
- Schätzklausur
Product Backlog zum Sprint-Ziel passende Anforderungen aufbereiten,
iterative Verfeinerung der Anforderungen, Priorisierung, Testbarkeit und Aufwandschätzungen;
max. 1 Tag (max. 5 % der Sprint-Dauer)
Team, Product Owner
Releaseplanung
(Planungsworkshop)
Releaseplan iterative Verfeinerung,
Berücksichtigung von Risiken
Product Owner
(Team)
Verfolgung des
Projektfortschritts
Releasebericht beispielsweise:
Release-Burndown-Bericht (Burndown über Sprints während gesamter Projektlaufzeit),
Entwicklungsgeschwindigkeit, Themenpark
Product Owner
Sprint-Review Sprint-Endbericht Überprüfung und Abnahme der Arbeitsergebnisse;
Zusammenfassender Bericht (Abnahme umgesetzter Anforderungen, Sprint-Burndown-Bericht, Hindernisbericht, Qualitätsmetriken);
max. 0,5 Tage (max. 2,5 % der Sprint-Dauer)
Product Owner
(Team)
Sprint-Retrospektive Verbesserungs-
maßnahmen
Feedback für kontinuierlichen Verbesserungsprozess ("kaizen"), Verbesserungsmaßnahmen entsprechend "SMART";
max. 0,5 Tage (max. 2,5 % der Sprint-Dauer)
ScrumMaster, Team, Product Owner
 
Einzelner Tag:
TätigkeitErgebnisBemerkungVerantwortlich
(und Beteiligte)
Daily Scrum Hindernisliste Stand-up-Kurzbesprechung (max. 15 Minuten), täglich selbe Uhrzeit, selber Ort, 3 Fragen:
- was war gestern
- heute anstehende Tätigkeiten/Aufgaben
- Hindernisse
Team,
ScrumMaster,
Product Owner
Softwareentwicklung Design,
Implementierung,
Konfiguration,
Tests, Doku etc.
Aktivitäten/Aufgaben wie beim Daily Scrum besprochen Team
tägliche Aktualisierung Sprint Backlog Aktualisierung der Aufgaben und der Restaufwandschätzung, Kennzeichnung erledigter Aufgaben Team
tägliche Aktualisierung Sprint-Burndown-
Bericht
Burndown über Tage während Sprint-Dauer (nicht verwechseln mit Release-Burndown-Bericht) ScrumMaster


Große Projekte

Für Scrum ist die bevorzugte Teamgröße 5 bis höchstens 10 Mitglieder. Mit "großen Projekten" sind Projekte gemeint, die wesentlich mehr Mitarbeiter benötigen. Hierfür gibt es besondere Empfehlungen und Zusätzliches zu beachten.



Resümee

Mögliche Kritikpunkte

Resümee




Weitere Themen: andere TechDocs | Softwareentwicklungsprozess | scrumalliance.org
© 2009 Torsten Horn, Aachen