Was ist Scrum?
Bei Scrum, dem englischen Wort für Gedränge, handelt es sich um ein Rahmenwerk für die Entwicklung von komplexen Produkten, das zur Zeit hauptsächlich bei der Softwareentwicklung Anwendung findet. Der empirische Ansatz von Scrum beruht auf der Einsicht, dass der Großteil der modernen Entwicklungsprojekte zu komplex ist, um sie durchgängig zu planen.
Diese Komplexität versucht Scrum mit Hilfe von drei Prinzipien zu reduzieren:
1. Transparenz: Sowohl der Fortschritt, als auch die Hindernisse des Projektes werden regelmäßig und für alle sichtbar, festgehalten.
2. Überprüfung: Die Produktfunktionalitäten werden regelmäßig beurteilt und geliefert.
3. Anpassung: Die Anforderungen an das Produkt werden nach jeder Lieferung bewertet und gegebenenfalls neu angepasst.
Die im Jahr 2001 formulierten Werte der agilen Software Entwicklung werden von Scrum verkörpert. Diese Werte sind:
- Die Individuen und die Interaktionen gelten mehr als die Tools und Prozesse.
- Die funktionierenden Programme gelten mehr als eine ausführliche Dokumentation.
- Die Zusammenarbeit mit dem Kunden steht über den Verträgen.
- Mut und Offenheit für Änderungen ist wichtiger als das Befolgen eines Plans.
Scrums Ziel ist die schnelle und kostengünstige, aber dennoch qualitativ hochwertige Fertigstellung der Produkte. Das Produkt soll am Ende einer schon zu Beginn formulierten Vision entsprechen, allerdings erfolgt die Umsetzung nicht durch das Aufstellen von detaillierten Anforderungslisten, sondern in höchstens vier Wochen langen, sich wiederholenden Sprints (= Intervallen). Jeder Sprint endet mit der Lieferung der fertigen Software-Funktionalität. Diese Funktionalität sollte in einem so guten Zustand sein, dass man sie direkt an den Kunden ausliefern kann.
Wie funktioniert Scrum?
Insgesamt wird bei Scrum zwischen sechs Rollen unterschieden. Drei davon, das Entwicklungsteam, der Product Owner und der ScrumMaster gehören zum Scrum Team und die anderen drei, das Management, der Customer und der User, sind externe Rollen, für das Gelingen von Scrum jedoch von großer Bedeutung.
Die Zuständigkeit der Produktentwicklung liegt beim Product Owner. Zu seiner Verantwortung zählen die Konzeption und Mitteilung der Produktvision, die Festlegung der Produkteigenschaften und er entscheidet ob die Funktionalität am Ende der einzelnen Sprints akzeptabel ist. Das Produkt wird vom Product Owner mit dem Ziel gestaltet, dass es den wirtschaftlichen Nutzen des eigenen Unternehmens maximiert. Die Entscheidung über die Kosten, die Funktionalität und den Auslieferungszeitpunkt liegt allein bei ihm.
Das Entwicklungsteam ist verantwortlich dafür, die Produktfunktionalitäten in der gewünschten Reihenfolge zu liefern. Auch für die Einhaltung der vereinbarten Qualität ist das Entwicklerteam verantwortlich, allerdings kann es alleine entscheiden welche Funktionalitäten innerhalb eines Sprints geliefert werden sollen. Entwicklerteams sind in der Regel interdisziplinär besetzt, das heißt jedes Team verfügt über einen Entwickler, Tester, Architekten usw.
Der ScrumMaster ist für das Gelingen von Scrum verantwortlich. Er antwortet zwar mit dem Entwicklerteam zusammen, ist aber nicht Teil davon. Der ScrumMaster führt die Regeln ein und sorgt für die Einhaltung, ebenso moderiert er Meetings und kümmert sich um Störungen im Prozess.
Der Customer ist der Auftraggeber, der nach der Fertigstellung über das Produkt verfügt.
Der User ist die Person, welche das fertige Produkt benutzt.
Das Management stellt zum Beispiel die materiellen Ressourcen für das Scrum Team zur Verfügung.
Quelle des Bildes: Yabresse – Fotolia
