Scrum ist eine Methode und ein Rahmen für die Umsetzung von Projekten. Oft kommt Scrum in der Softwareentwicklung zum Einsatz, der Ansatz ist aber auch für andere Entwicklungen interessant. Scrum betont die Eigenverantwortung von kleinen Teams, die flexible und schrittweise Festlegung von Zielen und das Management statt der Vermeidung von Komplexität.
Inhalt
Grundannahmen und Ausgangsbasis
Im Mannschaftssport Rugby bezeichnet Scrum eine Gruppe von Spielern, die eng aneinander gedrängt den Ball für das Ziel ihres Teams bewegen wollen. Die Managementmethode gleichen Namens übernimmt von dieser Spielsituation die Idee, dass ein kleines Team in enger Abstimmung untereinander zum Erreichen eines Ziels tätig wird. Die Erfinder von Scrum gingen davon aus, dass ein größeres Entwicklungsprojekt nicht im Detail und im Voraus sinnvoll planbar ist. Weder die Anforderungen an das Endprodukt noch die Lösungen für diese Aufgaben werden am Anfang hinreichend klar sein. Für den Ablauf gilt es deshalb als sinnvoller, sich schrittweise auf die bereits erzielten Zwischenergebnisse zu stützen. Auf dieser Grundlage wird das weitere Vorgehen festgelegt. Eine weitere Annahme besteht darin, dass in einer Organisation viel Wissen implizit vorhanden ist. Dieses ist im Gegensatz zu explizit niedergelegter Information schwieriger erschließbar, kommt aber vor allem in der Interaktion zwischen Mitarbeitern zur Geltung. Diese Interaktion spielt bei Scrum eine wesentliche Rolle.
Vorgehen bei einem Projekt mit Scrum
Die Anforderungen an das zu erarbeitende Ergebnis werden aus der Sicht der Anwender festgelegt. Ein Product Owner definiert die Reihenfolge von Schritten, das Entwicklerteam entscheidet, wie viele davon es in einem Sprint umsetzen wird. Ein solcher Sprint dauert zwischen einer und vier Wochen. In dieser Zeit sollen die
anvisierten Schritte soweit umgesetzt werden, dass das Ergebnis zur Auslieferung an den Kunden bereit ist. Zumindest sollen die Kunden und Anwender ein Ergebnis erhalten, aufgrund dessen sie ihr Feedback geben können. Diese Sprints strukturieren den zeitlichen Ablauf des ganzen Projekts. Sie beginnen mit einer Planung und enden mit einer Review. Das Ziel eines Sprints bleibt während seiner Laufzeit unverändert. Die folgenden Sprints und ihre Ziele hängen aber sehr wohl von den bereits erzielten Ergebnissen ab.
Das Team der Entwickler organisiert sich innerhalb dieser Sprints selbst. Dazu gehören die Daily Scrums, bei denen es sich um eine kurze Besprechung am Beginn jedes Arbeitstags handelt. Das Ziel ist auch hier, dass die innere Organisation des Entwicklerteams möglichst reibungslos vonstatten gehen kann. In der Review am Ende des Sprints erhält das Entwicklerteam Feedback von den Anwendern, das in die weiteren Schritte einfließt. Gerade eine flexible Arbeitsmethode wie Scrum erfordert eine gut organisierte Dokumentation. Ein wesentlicher Teil davon ist das Product Backlog mit der Liste der Anforderungen an das Endprodukt. Wesentlich bei der Methode Scrum ist es, dass diese Liste am Anfang des Projekts nicht vollständig verfügbar sein muss und auch kaum sein kann. Sie wird ständig vom Produkt Owner betreut. Die Weiterentwicklung der Anforderungen ergibt sich wesentlich aus der bereits geleisteten Entwicklungsarbeit und aus dem Feedback der Kunden und Anwender.
Verschiedene Rollen bei Scrum
- Product Owner: Er stellt die Verbindung zwischen den Kunden und dem Entwicklerteam her. In Absprache mit den Kunden gestaltet er die Liste der Anforderungen. Insbesondere legt er auch die Reihenfolge der Inhalte der Sprints fest. Ist ein Sprint abgeschlossen, gehört auch die Beurteilung des Erfolgs dieses Sprints zu seinen Aufgaben.
- Scrum Master: Ihm obliegt die Koordination und Führung des Projekts. Unter Führung ist hier allerdings keine Kommandoführung zu verstehen, sondern ein Schwerpunkt auf Coaching und auf die Ermöglichung von Leistung. Der Scrum Master arbeitet in enger Abstimmung mit dem Entwicklerteam, gehört diesem aber selbst nicht an.
- Entwicklerteam: Ein solches Team sollte höchstens 10 Entwickler umfassen. Das Team erhält Vorgaben vom Product Owner, kann aber über die Umsetzung selbst entscheiden. Im der Methode Scrum gehört es zu den zentralen Anforderungen, dass sich das Entwicklerteam selbst organisieren kann und muss. Die Ergebnisse hat das Team dann ebenfalls gemeinsam zu verantworten. Im Team sind verschieden qualifizierte Mitglieder enthalten. Scrum funktioniert aber nur dann wirklich gut, wenn alle zumindest einen Überblick über alle vorhandenen Qualifikationen besitzen. Auf diese Weise ist das Team leistungsfähiger und stabiler, da gegenseitige Unterstützung und Ergänzung besonders gut möglich sind. Die Grundform von Scrum sieht nur ein Entwicklerteam vor. Für viele Projekte sind aber natürlich mehr Mitarbeiter notwendig. Dann können auch entsprechend viele Teams zusammen arbeiten. Es ist dann aber klar, dass der Koordinationsaufwand stark steigen wird.
Eigenschaften von Scrum
- Auch die Darstellung mit optimistisch formulierten Zielen und Ansprüchen kann nicht darüber hinwegtäuschen, dass die Methode keine Erfolgsgarantie anbieten kann. Das ist besonders auch eine Folge davon, dass der Ablauf eines Projekts am Beginn weniger detailliert festgelegt ist als in anderen Methoden zur Projektdurchführung.
- Die Methode erfordert von allen Beteiligten eine erhöhte Flexibilität. In einem Team ist es wichtig, dass alle Mitglieder nicht nur in ihrem Spezialgebiet Interesse zeigen und sich auch auf Aufgaben ausserhalb ihrer Komfortzone einlassen.
- Durch die methodenimmanente Flexibilität ist es schwieriger, vertragliche Vereinbarungen über ein Projekt abzuschließen. Da sich die Anforderungen während des Projekts ändern können, sind die Bedingungen für ein erfolgreiches Projekt weniger einfach festzulegen.