Scrum ist ein Konzept aus der Software Entwicklung das auf agilen Methoden und dynamischem Projektmanagement basiert. Es erkennt die Vielschichtigkeit solcher Projekte an und will deshalb step by step vorgehen.
Ziel dieses Modells ist es, die Arbeit im Team kontinuierlich zu verbessern. Hierbei sind Kommunikation und Zusammenarbeit im Team essentiell. Und vor allem die Selbstorganisation der Teams darf hier nicht unterschätzt werden.
Der Leitfaden für Scrums, der sogenannte Scrum Guide wurde verfasst von Ken Schwaber und Jeff Sutherland.
Das Scrum Framework organisiert sich in Teams – wichtige Rollen sind: der Scrum Owner oder Product Owner, der Scrum Master und das Entwicklungsteam (Projektteam). Dieses Scrum Team ist das interne Team und ist direkt am Prozess beteiligt.
Zu externen Beteiligten zählen die Stakeholder, also die Anwender des Produkts, der Kunde oder Auftraggeber und das Management.
Im Folgenden werden wir die wichtigsten Begriffe des Scrum Framework erklären.
Die Mitglieder des Scrum Teams und ihre Aufgaben:
Scrum Master
Seine Tasks sind Koordination und Management.
Der Scrum Master ist gleichzeitig Moderator und Organisator des gesamten Teams, aber auch Ansprechpartner und Unterstützer. Allerdings ist er kein volles Mitglied im Team und darf deshalb keine Anweisungen geben.
Er leitet Meetings und passt auf, dass Regeln im Team eingehalten werden. Bei methodischen Fragen steht er dem Team zur Verfügung.
Er sorgt dafür, dass die Selbstorganisation des Entwicklungsteams nicht gestört wird. Zum Beispiel lässt er ihnen keine Aufgaben zukommen, die nicht ins Product Backlog fallen.
Die Kommunikation mit dem Product Owner, aber auch innerhalb des Teams ist seine Aufgabe.
Insgesamt kümmert er sich also darum, dass alles innerhalb des Projektteams und die Arbeit mit dem Auftraggeber glatt läuft.
Product Owner
Der Product Owner ist immer eine Person. Seine Verantwortung liegt im Entwerfen des Product Backlog. Das Product Backlog ist sozusagen ein Pool an Features, also Produkteigenschaften für die Software oder das Produkt, die entwickelt wird.
Er kommuniziert mit den Stakeholdern / Anwendern des Produkts. Das sind sind z.B. die Nutzer, die interessiert daran sind, dass eine neue Software gut funktioniert. Oder die Produktmanager, die im Interesse ihrer Kunden handeln.
Der Product Owner ist also verantwortlich dafür, die entsprechenden (fachlichen) Anforderungen an das Produkt zu stellen, das entwickelt werden soll. Dazu gehören beispielsweise Zeit, Kosten und Qualität. Diese Ansprüche gelten dem Projektteam.
Auch Marketing und Vertrieb fallen in seine Hände.
Entwicklungsteam / Projektteam
Die Aufgabe des Teams ist die Ausarbeitung des Produkts. Diese sollte entsprechend den Anforderungen aus dem Product Backlog erledigt werden, die vom Product Owner gestellt werden.
Im Planungsmeeting oder Sprint Planning des Entwicklungsteams wird die Umsetzung für den nächsten Schritt, also den nächsten Sprint kalkuliert. Aus dem Pool an Anforderungen (Features) wird selektiert, welche in dem kommenden Sprint involviert werden. Diese Auswahl ist der Sprint Backlog und wird in einzelne Tasks aufgeteilt.
Für die Zusammensetzung dieses Teams ist es wichtig, dass jede Person einen fachlichen Bereich vertritt. So hat jeder seine Aufgabe oder sein Spezialgebiet und das Team kooperiert ausgezeichnet. Selbstorganisation ist hier das Stichwort.
Innerhalb des Teams herrscht keine Hierarchie.
Die Mitglieder des Teams treffen sich täglich zum Daily Scrum. Das sind höchstens 15 Minuten, in denen die Team Members sich gegenseitig auf den neuesten Stand ihrer Fortschritte bringen.
Die Abläufe und Etappen innerhalb des Scrums:
Sprints
Die Projektlaufzeit wird von Scrum in verschiedene Etappen unterteilt, die sich teilweise wiederholen. Die Etappen sind die sogenannten Sprints. Sie dauern in der Regel etwa 2 bis 4 Wochen.
Wichtig ist, dass diese Sprints nicht verlängert werden sollten. Sie können aber abgebrochen werden, wenn sich z.B. die Anforderungen ändern.
Am Ende jedes Sprints entsteht ein vorläufiges, aber funktionsfähiges Produkt – das Product Increment (Produktinkrement). Das wird dem Kunden vorgelegt, er kontrolliert es und gibt Feedback. Auf Grundlage dessen wird im nächsten Scrum weiter entwickelt.
Sprint Review Meeting
Am Ende jedes Sprints werden die Ergebnisse der abgeschlossenen Etappe, also der Status des Projekts, präsentiert. Die Dauer des Sprint Review ist festgelegt. Sie wird an die Länge der Sprints angepasst. Wenn z.B. der Sprint 2 Wochen andauert, könnte das Sprint Review für 2 Stunden angesetzt werden.
Hier soll Feedback von Anwendern, also den Stakeholdern, und vom Product Owner in den Product Backlog eingebracht werden. Der Fortschritt des Teams wird vorgestellt und das Product Increment wird überprüft. Falls notwendig, wird der Product Backlog in diesem Schritt angepasst.
Außerdem werden die Aufgaben der nächsten Etappen besprochen. Sprint Retrospektive und das nächste Sprint Planning werden vorbereitet und geplant.
Sprint Retrospective
Die abschließende Scrum Retrospective wird die (Zusammen-)Arbeit des Projektteams besprochen und analysiert. Das ist ein wichtiger Schritt, da innerhalb des Scrum ein Lernprozess kreiert werden soll.
Das Team reflektiert zusammen mit dem Scrum Master die Erfahrungen, die aus dem abgeschlossenen Sprint gesammelt wurden. Vorgehensweisen, Werkzeuge und die Zusammenarbeit werden analysiert.
Daraus entstehen Maßnahmen, durch die die Arbeit im darauffolgenden Sprint effektiv geändern werden kann.
Ziel ist es, die Produktivität des Teams kontinuierlich zu erhöhen. Auch die Kollaboration mit den Stakeholdern soll verbessert werden.
Das Kanban-Board
Die Auswahl aus dem Product Backlog, also die Sprint Backlogs sind sozusagen der Aufgabenplan eines Sprints.
Dieser Plan wird auf dem sogenannten Kanban-Board präsentiert. Alle Aufgaben und Bereiche des Projekts sind also übersichtlich auf einer Tafel dargestellt.
Jedes der Mitglieder kann darauf zugreifen und so einen Überblick behalten.
Hier wird auch festgehalten, welche der Tasks schon erfüllt werden und was noch offen steht. So können die Prozesse des Projekts gelenkt und beobachtet werden.
Ziel eines Scrums ist es, die Kooperation innerhalb eines Teams stetig zu verbessern. Gleichzeitig soll die Arbeit produktiv, dynamisch und flexibel ablaufen. Dafür ist der Lernprozess, den das Team durchläuft, essentiell.
Der Begriff Scrum kommt übrigens aus dem Rugby und beschreibt das “Gedränge” auf dem Spielfeld, mit dem das Spiel neu gestartet wird.