am 21. Januar 2010
Scrum ist momentan in aller Munde wenn es darum geht, Projekte agil zu entwickeln. So auch bei uns: Wir entwickeln in der Firma die Projekte seit einiger Zeit agil und seit meiner Zertifizierung zum Scrum Master (CSM) weiten wir den Einsatz von Scrum stark aus.
Dabei ist Scrum zunächst “nur” ein teambasierendes Framework, das auf nur wenigen Rollen, Regeln und Time-Boxen basiert. Ich werde in diesem Beitrag nicht umfänglich auf das gesamte Framework eingehen, das kann man hier gut nachlesen. Ich werde mich vorwiegend auf die Bedeutung für das Entwicklungsteam beschränken. Bei Bedarf bzw. Nachfrage stelle ich aber auch gerne einmal das gesamte Framework in einem gesonderten Beitrag vor.
Ziel bei einer Projektabwicklung mit Scrum ist es, eine deutlich höhere Produktivität und Kundenzufriedenheit zu garantieren, weil durch den ständigen Dialog mit dem Interessenvertreter von Kundenseite (Product Owner) und den kurzen Iterationen (Sprints mit garantierter Auslieferung von lauffähigen Produktinkrementen) eine höchste Übereinstimmung zwischen Entwicklungsauftrag und Ergebnis gewährleistet wird.
Nimmt man das gesamte Scrum Team, so finden sich dort drei Rollen wieder:
- Der Product Owner als Vertreter des Kunden, der vorwiegend die Anforderungen und Produkteigenschaften einbringt und am wirtschaftlichen Erfolg des Projekts gemessen wird.
- Der Scrum Master, der als “Kümmerer” zwischen Product Owner und Entwicklungsteam vermittelt und dafür sorgt, dass der Scrum Prozess eingehalten wird. Sein Erfolg wird an der Produktivität des Entwicklungsteams gemessen.
- Und schließlich das Entwicklungsteam, dessen Aufgabe es ist, am Ende eines Sprints, der zwei oder vier Wochen dauert, ein lauffähiges Produktinkrement zu liefern und daran auch gemessen wird. Am Ende des Produktionszyklus soll dann natürlich auch das fertige Produkt ausgeliefert sein.
Bei Scrum managt und organisiert sich das Entwicklungsteam selbst. Das liegt daran, dass die Verantwortung für die Fertigstellung des Inkrements oder Produkts in der Hand des Entwicklungsteams selbst liegt. Die Mitglieder des Entwicklungsteams entscheiden idealerweise selbst, welche Tasks sie abarbeiten. Der Scrum Master leitet nur zu dieser Selbstorganisation an, er ist nicht der Projektmanager im herkömmlichen Verständnis – den gibt es bei Scrum nicht. Weiterhin ist das Entwicklungsteam interdisziplinär besetzt und umfasst das gesamte Wissen und die Fähigkeiten, die für das Projekt nötig sind. Es finden sich also nicht nur Entwickler sondern ebenso auch Architekten, Tester etc. im Team. Ein Entwicklungsteam umfasst zwischen fünf und neun Mitgliedern, idealerweise sieben.
Damit verbunden ist auch eine hohe Transparenz und Ehrlichkeit des Entwicklungsteams zum Product Owner, zum Scrum Master und auch untereinander. Das Entwicklungsteam muss ein wirkliches Team werden, Ablehnung von Code Reviews oder der Rückzug ins stille Kämmerlein sind No-Gos mit Scrum. Probleme bei der Entwicklung müssen an Scrum Master sowie Product Owner in aller Offenheit weitergegeben werden. Im Gegenzug dazu erhält das Entwicklungsteam die uneingeschränkte Unterstützung der Organisation und des Kunden. Das bezieht sich auch auf die eingesetzten Techniken: Tests, Continuous Integration, Code Reviews und Versionskontrolle sind Pflicht, selbst wenn sie vom Scrum Framework nicht explizit genannt werden.
Generell gesprochen ist Scrum ein Framework, das vor allem auf Kommunikation basiert. In allen vorgeschrieben Meetings (Planungsmeetings, Sprint-Review-Meeting, etc.) kommunizieren die Mitglieder des Scrum Teams miteinander. Auch beim Daily Scrum, zu dem sich alle Mitglieder des Entwicklungsteams täglich für 15 Minuten mit dem Scrum Master treffen, um über Fortschritte und Probleme im Projekt zu berichten, steht der gegenseitige Austausch im Mittelpunkt.
Wie man schnell sieht, erfordert Scrum von einem Entwicklungsteam eine ganze Menge – Dinge, die man nicht immer voraussetzen kann, sondern die zumeist erst erlernt und eingeübt werden müssen. Das geht nicht über Nacht, sondern die Einführung von Scrum in einem Unternehmen kann sich über Monate hinziehen. Hier ist der Scrum Master gefragt, der das Team immer wieder ermuntert, anleitet, ihm zur Seite steht und Hindernisse für das Team auf jeder Ebene aus dem Weg räumt. Die Einführung von Scrum lohnt sich aber dennoch, denn der Gewinn an Produktivität und Kundenzufriedenheit ist den Aufwand in jedem Fall wert.