Scrum – Gedränge in der Produktentwicklung

Vor einiger Zeit gab es schon den Link zu Scrum kurz erklärt, heute folgt eine etwas längere Vorstellung des Projekt-Vorgehensmodell Scrum. Entstanden als Trendreferat für das seitenblick-Team, nun auch im Netzlogbuch.
Der Zusammenhang zum Rugby
Eigentlich ist es etwas suspekt, dass ausgerechnet „Scrum“ (dt. Gedränge) zum Titel für eine Methode der agilen Softwareentwicklung und Projektmanagement wurde. Es bezeichnet beim Rugby die Spielsituation, wenn sich die Stürmer der beiden Mannschaften Kopf an Kopf gegenüber stehen, aufeinander prallen und versuchen, den Ball auf martialische Art und Weise ihrer Mannschaft mit den Füßen nach hinten durch zu treten. Dabei basiert der Zusammenhang eher auf dem Versuch des Rugby-Teams, als Einheit zu agieren und den Ball immer hin und her zu spielen. Dadurch sollen Geschwindigkeit und Flexibilität erhöht werden, wie es auch bei der agilen Softwareentwicklung der Fall ist.
Agile Softwareentwicklung
Scrum ist also eine Methode für agile Softwareentwicklung und Projektmanagement. Es wird dabei versucht, den Aufwand bei der Entwicklung gering zu halten und mit wenigen Regeln auszukommen. Dadurch soll der Prozess flexibler und schlanker werden. Die Zeit, die für die Entwicklung benötigt wird, ist zweitrangig – das Ziel steht im Mittelpunkt. Außerdem werden technische und soziale Probleme, die während des Prozesses auftreten, ernst genommen und nach Lösungen gesucht. Andere agile Prozesse für Softwareentwicklung sind z.B. Extreme Programming (XP) oder Feature Driven Development (FDD).
Was ist Scrum?
Scrum selbst wurde um 1990 das erste Mal eingesetzt und hatte mit der Jahrtausendwende den Durchbruch. Inzwischen wird es weitverbreitet eingesetzt. Die Methode ist sehr kundenorientiert und setzt auf direktes Feedback zu jeder Teilaufgabe. Dadurch können Änderungen schnell umgesetzt und Bugs schnell behoben werden. Mit Scrum wird die Software oder das Produkt in Zyklen („Sprints“) entwickelt. Außerdem gibt es eine klare Rollenverteilung.

Die Rollenverteilung: Product Owner, Team und Scrum Master
Die drei Hauptakteure oder „Rollen“ sind der Product Owner, der Scrum Master und das Team. Der Product Owner stellte die fachlichen Anforderungen und legt die Prioritäten der einzelnen Teilaufgaben fest. Er definiert, welche Features und Funktionen das Endprodukt haben soll. Das Team besteht aus 5-10 Personen und entwickelt das Produkt bzw. programmiert die Software. Es organisiert sich selbst und verteilt die Aufgaben nach eigenem Ermessen. Das Team ist interdisziplinär zusammengesetzt und bildet zu jeder Aufgabe neue Unterteams. Der Scrum Master ist wie der Coach beim Rugby. Er organisiert den Ablauf und hilft dem Team eigene Lösungsmöglichkeiten für Probleme zu finden. Der Scrum Master moderiert Meetings und vermittelt zwischen Team und Product Owner. Außerdem sorgt er dafür, dass sich der Product Owner nicht in die Arbeit des Teams einmischt.

Zerlegung in kleine Häppchen: der Sprint
Scrum ist ein iterativer Prozess, d.h. es gibt einen Zyklus („Sprint“), der ständig neu durchlaufen wird. Zunächst werden alle Features, die das Produkt oder die Software später haben soll, in einer Liste, dem sog. Product-Backlog gesammelt. Die Features werden in dieser Release-Planung vom Product Owner sortiert. Das Product-Backlog kann sich während des Prozesses ständig ändern, neue Features kommen hinzu, andere fallen weg oder die Gewichtung einzelner Teile ändert sich.
Die Vorbereitung zum Sprint
In Absprache mit dem Product Owner entnimmt das Team regelmäßig einen Teil der hoch priorisierten Features oder auch Requirements (Anforderungen) und bildet daraus ein Arbeitpaket. Ziel des Teams ist es nun, dieses Arbeitspaket, das Increment genannt wird, innerhalb eines Zyklus komplett abzuarbeiten, inklusive Tests und der Dokumentation. Die Dauer eines Zyklus, ist genau festgelegt und beträgt i.d.R. zwischen 2 und 4 Wochen. Zu Beginn wird das Arbeitspaket in einem Sprint Planning Meeting in kleine Einzelaufgaben, die Tasks heruntergebrochen.

Tägliche Meetings während eines Zyklus
In einer weiteren Liste, dem Sprint Backlog werden die Tasks festgehalten und vom Scrum Master täglich der Fortschritt eingetragen. Dazu treffen sich die Teammitglieder einmal täglich zum Daily Scrum Meeting. Dieses Treffen dauert maximal 15 Minuten und wird meist im Stehen nach der Mittagspause abgehalten. Jedes Teammitglied beantwortet kurz aber aussagekräftig die folgenden drei Fragen: Was habe ich seit dem letzten Daily Scrum getan und bin ich damit fertig geworden, was werde ich bis zum nächsten Daily Scrum erledigen und welche Probleme haben mich bei der Arbeit blockiert? Dieses Treffen dient auch dem Austausch der Teammitglieder untereinander. Jeder soll wissen, wie der aktuelle Stand ist, woran seine Kollegen genau arbeiten und welche Probleme wodurch aufgetreten sind. Der Scrum Master notiert die Probleme im Impediment Backlog und unterstützt das Team nach dem Meeting bei der Lösungsfindung. Der Product Owner sollte bei den Treffen anwesend sein, um die aktuelle Entwicklung zu sehen, darf sich aber nicht einmischen.
Präsentation nach dem Sprint
Ist ein Zyklus oder Sprint durchlaufen folgt das Sprint Review. Dabei präsentieren die Team-Mitglieder dem Product Owner, Stakeholdern und weiteren Zuschauern das Ergebnis des Sprints. Die Präsentation erfolgt am Live-System (keine Dummies!) und dauert maximal 4 Stunden. Die Zuschauer können Feedback geben und der Product Owner hat eine Entscheidungshilfe für das weitere Vorgehen.
Rückblickende Analyse zur Verbesserung
Direkt im Anschluss setzt sich das Team mit dem Scrum Master zum Sprint Retrospective Meeting zusammen und analysiert den vergangenen Sprint. Dabei überlegt man sich, wie sich aufgetretene Probleme in Zukunft vermeiden lassen und wie man den Sprint noch weiter optimieren kann. Der Scrum Master übernimmt dabei wieder die Moderatoren-Rolle und notiert die Ergebnisse. Das Treffen dauert maximal 3 Stunden.
Regeln bei Scrum
Bei Scrum gibt es nur wenige Regeln, aber es ist wichtig, die wenigen Regeln einzuhalten, damit Scrum wirklich funktioniert und sich der Entwicklungsprozess beschleunigt. Eine dieser Regeln ist die klare Rollentrennung zwischen Product Owner, Scrum Master und Team. Product Owner und Scrum Master dürfen keinesfalls die gleiche Person sein, da Interessenskonflikte vorprogrammiert sind. Außerdem darf sich keiner in die Arbeit der anderen einmischen, es gibt keinen Chef oder Teamleiter im klassischen Sinne, alle sind gleichgestellt. Jeder hat die Freiheit selbst zu entscheiden, wie und mit welchen Mitteln er seine Aufgabe am Besten löst.
Nachteile von Scrum
Scrum kann nicht funktionieren, wenn dominante Teammitglieder die Selbstorganisation stören und z.B. Aufgaben eigenmächtig verteilen. Zudem sollten alle Teammitglieder bereits hoch qualifiziert sein, um in so schnellem Rhythmus funktionsfähige Ergebnisse liefern zu können. Ein weiterer Nachteil von Scrum ist der enge Zeitrahmen, in dem meist zu wenig Zeit für ausgiebige Tests bleibt. So kann es z.B. bei Webprojekten auch vorkommen, dass ‚Baustellen’ online gehen, was nicht immer im Sinne des Product Owners ist.
Im WEAVE-Magazin für Interactive Design, Konzeption und Development gab es in der Ausgabe 05/09 einen interessanten Artikel zum Thema “Scrum bei XING”. XING hat am Agile Day der JAX 2009 einen Vortrag zu deren Erfahrungen mit Scrum gehalten, den man auch bei Jax TV online ansehen kann (Dauer: 45 Minuten).
von Andreas Harnisch

Kommentare
Tweets die Scrum – Gedränge in der Produktentwicklung - Netzlogbuch erwähnt -- Topsy.com schrieb am 18.11.2009 um 10:54 Uhr
[...] Dieser Eintrag wurde auf Twitter von Matthias Zellmer, rtstuttgart erwähnt. rtstuttgart sagte: RT @Zellmi Netzlogbuch » Scrum – Gedränge in der Produktentwicklung http://bit.ly/yeyU1 http://url4.eu/mVn6 [...]
S schrieb am 18.11.2009 um 11:40 Uhr
Ich fühle mich wie von Baader-Meinhof überrannt.. seitdem ich damals einen Artikel über Scrum für unseren Firmen Blog geschrieben habe (der ist übrigens auch ganz interessant: http://www.kaeuferportal.de/blog/allgemein/die-scrum-methode/), les ich auf einmal alles mögliche und über all über Scrum..
Wollts nur mal angemerkt haben :D
red-7-seven schrieb am 18.11.2009 um 14:08 Uhr
Die beste Vorgehensweise bei Software-Projekten! Drei mal bisher angewandt bei Projekten in der Größenordnung (3-4 Monate Laufzeit) und für SEHR GUT befunden =)