Scrum ist die Bezeichnung für ein Vorgehensmodell des Projekt- und Produktmanagements, insbesondere zur agilen Softwareentwicklung. Es wurde ursprünglich in der Softwaretechnik entwickelt, ist aber davon unabhängig. Scrum wird inzwischen in vielen anderen Bereichen in Berlin eingesetzt.
Scrum besteht aus nur wenigen Regeln und ist prinzipiell schnell zu erlernen. Die Komplexität von Scrum ergibt sich jedoch im praktischen Einsatz und daher sollte hier auch speziell darauf hingewiesen werden, dass Erfahrung einen wichtigen Teil von Scrum darstellt.
Die Grundregeln von Scrum beschreiben fünf Aktivitäten, drei Artefakte und drei Rollen, welche die Basis ausmachen. Die Regeln sind im sogenannten "Agile Atlas" bzw. im etwas umfangreicheren Leitfaden "Scrum Guide" beschrieben.
Für die praktische Umsetzung in Berlin und den praktischen Einsatz von Scrum muss das Scrum Rahmenwerk durch Techniken für die Umsetzung konkretisiert werden. Der Kern von Scrum wurde bewußt von den Umsetzungstechniken getrennt, um einerseits die zentralen Elemente und Wirkungsmechanismen klar zu definieren, andererseits umfangreiche Freiheiten bei der individuellen Ausgestaltung zu lassen.
Der Ansatz von Scrum ist empirisch, inkrementell und iterativ. Er beruht auf der Erfahrung, dass viele Entwicklungsprojekte zu umfangreich sind, um in einen vollumfänglichen Plan gefasst werden zu können.
Scrum ist besonders hilfreich, wenn es um komplexe Umgebungen geht.
Ein wesentlicher Teil der Anforderungen und der Lösungsansätze ist zu Beginn nicht bekannt. Diese Unklarheit lässt sich beseitigen, indem Zwischenergebnisse geschaffen werden. Anhand dieser Zwischenergebnisse lassen sich die fehlenden Anforderungen und Lösungstechniken besser finden als durch eine abstrakte Klärungsphase.
In Scrum wird neben dem Produkt auch die Planung iterativ und inkrementell entwickelt. Der langfristige Plan (das sogenannte "Product Backlog") wird kontinuierlich verfeinert und verbessert. Der Detailplan (das sogenannte "Sprint Backlog") wird nur für den jeweils nächsten Durchlauf (den "Sprint") erstellt.
Damit wird die Projektplanung auf das Wesentliche fokussiert.
Wie bereits gezeigt, basiert Scrum auf der empirischen und inkrementellen Verbesserung.
Die empirische Verbesserung fußt dabei auf drei Säulen:
Transparenz: Fortschritt und Hindernisse eines Projektes werden regelmäßig und für alle sichtbar festgehalten.
Überprüfung: In regelmäßigen Abständen werden Produktfunktionalitäten geliefert und sowohl das Produkt als auch das Vorgehen beurteilt.
Anpassung: Anforderungen an das Produkt, Pläne und Vorgehen werden nicht ein für alle Mal festgelegt, sondern kontinuierlich detailliert und angepasst. Scrum reduziert die Komplexität der Aufgabe nicht, strukturiert sie aber in kleinere und weniger komplexe Bestandteile, die Inkremente.
Ziel ist die schnelle und kostengünstige Entwicklung hochwertiger Produkte entsprechend einer definierten Vision. Die Realisierung der Vision in das fertige Produkt erfolgt nicht durch die Aufstellung möglichst detaillierter Lasten- und Pflichtenhefte.
Scrum lässt sich als Gegenentwurf zur Befehls-und-Kontroll-Organisation verstehen, in der Mitarbeiter möglichst genaue Arbeitsanweisungen erhalten. Stattdessen baut Scrum auf hochqualifizierte, interdisziplinär besetzte Entwicklungsteams, die zwar eine klare Zielvorgabe bekommen, für die Umsetzung jedoch allein zuständig sind. Dadurch bekommen die Entwicklungsteams den wichtigen, um ihr Wissens- und Kreativitätspotenzial in Eigenregie zur Entfaltung zu bringen.
Scrum verkörpert die Werte der agilen Software-Entwicklung, die 2001 im agilen Manifest von Ken Schwaber, Jeff Sutherland und anderen beschrieben wurden:
Menschen und Interaktionen sind wichtiger als Prozesse und Werkzeuge.
Funktionierende Software ist wichtiger als umfassende Dokumentation.
Zusammenarbeit mit dem Kunden ist wichtiger als die ursprünglich formulierten Leistungsbeschreibungen.
Eingehen auf Veränderungen ist wichtiger als Festhalten an einem Plan.
Bei Scrum geht man davon aus, dass man komplexe Produkte nicht zu Beginn vollständig definieren kann und dann exakt nach den Anforderungen abarbeitet.
In Scrum werden die Anforderungen in Form von Eigenschaften aus der Anwendersicht in Berlin formuliert. Die Liste dieser Anforderungen ist das Product Backlog. Diese Anforderungen werden Stück für Stück in zwei bis vier Wochen langen Abschnitten, sogenannten Sprints umgesetzt.
Am Ende eines Sprints steht bei Scrum die Lieferung eines fertigen Teilprodukts (das "Product Increment"). Das Produktinkrement sollte in einem Zustand sein, dass es an den Kunden zur Verfügung gestellt werden kann. Im Anschluss an den Zyklus werden Produkt, Anforderungen und Vorgehen überprüft und im nächsten Sprint weiterentwickelt.
Scrum ist für Teams in Berlin mit einer Größe von drei bis neun Personen konzipiert. Größere Entwicklungsprojekte oder größere Entwicklungsabteilungen benötigen ein weitergehendes Framework, das die Koordination mehrerer Teams organisiert. Wenn diese Koordination den gleichen Prinzipien wie Scrum folgt, dann spricht man von Scaled Agile Frameworks.
Die Anfänge von Scrum lassen sich auf Ikujirō Nonaka und Hirotaka Takeuchi zurückverfolgen, welche mit dem "Toyota Produktionssystem" viele Grundlagen gelegt haben.
Damals entwickelte Jeff Sutherland in einem Projekt für die Guinness Peat Aviation eine neue Rolle für die Projektleiter. Diese wurden zu Teammitgliedern, und ihre Rolle war eher die eines Moderators als die eines Managers. Ken Schwaber veröffentlichte auf der OOPSLA 1995 den ersten Konferenzbeitrag über Scrum. Darin schrieb Schwaber:
Scrum akzeptiert, dass der Entwicklungsprozess nicht vorherzusehen ist. Das Produkt ist die bestmögliche Software unter Berücksichtigung der Kosten, der Funktionalität, der Zeit und der Qualität.
Der Begriff Scrum stammt aber von Ikujirō Nonaka und H. Takeuchi, die damit das Gedränge (englisch "scrum") im Rugby als Analogie für außergewöhnlich erfolgreiche Produktentwicklungsteams beschrieben. Diese Teams arbeiten als kleine, selbst-organisierte Einheiten und bekommen von außen nur eine Richtung vorgegeben, bestimmen aber selbst die Taktik, wie sie ihr gemeinsames Ziel erreichen.
Die Gesamtheit dieser Rollen wird als Scrum Team bezeichnet. Ein Scrum Team tritt mit den Beteiligten in Kontakt, den sogenannten Stakeholdern. Fortschritt und Zwischenergebnisse sind für alle Stakeholder einsehbar. Stakeholder dürfen bei den meisten Aktivitäten zuhören.
Der Product Owner ist für die Eigenschaften und den wirtschaftlichen Erfolg des Produkts verantwortlich. Er gestaltet das Produkt mit dem Ziel, den wirtschaftlichen Nutzen für das eigene Unternehmen zu maximieren.
Er erstellt, priorisiert und erläutert die zu entwickelnden Produkteigenschaften, und er urteilt darüber, welche Eigenschaften am Ende eines Sprints fertiggestellt wurden. Er ist eine Person, kein Komitee.
Ihm allein obliegt die Entscheidung über das Produkt, seine Eigenschaften und die Reihenfolge der Implementierung. So balanciert er Eigenschaften, Auslieferungszeitpunkte und Kosten.
Zur Festlegung der Produkteigenschaften verwendet der Product Owner das Product Backlog. Darin trägt er in Zusammenarbeit mit dem Entwicklungsteam und den Stakeholdern die Anforderungen an das Produkt ein.
Der Product Owner ordnet, detailliert und aktualisiert das Product Backlog regelmäßig im Product Backlog Refinement.
Als Produktverantwortlicher hält der Product Owner regelmäßig Rücksprache mit den Stakeholdern, um deren Bedürfnisse und Wünsche zu verstehen. Dabei muss er die Interessen und Anforderungen unterschiedlicher Stakeholder verstehen und abwägen.
In der Praxis erhalten Product Owner häufig nicht die Vollmacht, die notwendigen Entscheidungen verbindlich zu treffen – abweichend von der Rollenkompetenz, die in Scrum eigentlich vorgesehen ist. Häufig werden Product Owner auch mit fremden Aufgaben überlastet.
Das Entwicklungsteam ist für die Lieferung der Produktfunktionalitäten in der vom Product Owner gewünschten Reihenfolge verantwortlich. Zudem trägt es die Verantwortung für die Einhaltung der vereinbarten Qualitätsstandards.
Das Entwicklungsteam organisiert sich selbst. Es lässt sich von niemandem, auch nicht vom Scrum Master, vorschreiben, wie es Backlogeinträge umzusetzen hat.
Ein Entwicklungsteam sollte in der Lage sein, das Ziel eines jeweiligen Sprints ohne größere äußere Abhängigkeiten zu erreichen. Deshalb ist eine interdisziplinäre Besetzung des Entwicklungsteams wichtig, z. B. mit Architekt, Entwickler, Tester, Dokumentationsexperte und Datenbankexperte.
Gute und schlechte Ergebnisse werden nie auf einzelne Teammitglieder, sondern immer auf das Entwicklungsteam als Einheit zurückgeführt. Das ideale Teammitglied ist sowohl Spezialist als auch Generalist, damit es Teamkollegen beim Erreichen des gemeinsamen Ziels helfen kann.
Ein Entwicklungsteam besteht aus mindestens drei, höchstens neun Mitgliedern. Es muss einerseits groß genug sein, alle benötigten Kompetenzen zu vereinigen, andererseits steigt mit wachsender Teamgröße der Koordinierungsaufwand.
Zu den weiteren Aufgaben eines Entwicklungsteams zählt die Schätzung des Umfangs der Einträge im Product Backlog (im Product Backlog Refinement).
Außerdem bricht das Entwicklungsteam in der Sprint Planung die für einen Sprint ausgewählten Einträge aus dem Product Backlog in Arbeitsschritte, sogenannte Tasks, herunter, deren Bearbeitung üblicherweise nicht länger als einen Tag dauert. Das Ergebnis ist das Sprint Backlog.
Team-Mitglieder in Berlin haben bisweilen Schwierigkeiten, die interdisziplinären Anforderungen zu akzeptieren. So mag beispielsweise ein Entwickler nicht verstehen, warum er auch die Arbeit eines Testers leisten soll.
Dahinter steht jedoch der Gedanke, dass ein starkes Team den Unwägbarkeiten eines Projektes wesentlich besser gewachsen ist als eine Sammlung individueller Talente. Falls jemand mit einer Aufgabe nicht zurecht kommt, kann ein anderer helfen, das Sprint-Ziel zu erreichen. Fällt jemand für einige Zeit aus, so ist ein interdisziplinäres Team besser in der Lage, die fehlende Expertise auszugleichen.
Der Scrum Master ist dafür verantwortlich, dass Scrum gelingt!
Dazu arbeitet er mit dem Entwicklungsteam zusammen, gehört aber selbst meist nicht dazu. Er führt die Scrum-Regeln ein, überprüft deren Einhaltung und kümmert sich um die Behebung von Störungen und Hindernissen.
Dazu gehören mangelnde Kommunikation und Zusammenarbeit sowie persönliche Konflikte im Entwicklungsteam, Störungen in der Zusammenarbeit zwischen Product Owner und Entwicklungsteam sowie Störungen von außen, beispielsweise Aufforderungen der Fachabteilung zur Bearbeitung zusätzlicher Aufgaben während eines Sprints.
Ein Scrum Master ist gegenüber dem Entwicklungsteam eine dienende Führungskraft.
Er gibt einzelnen Team-Mitgliedern keine Arbeitsanweisungen. Weder beurteilt er sie, noch belangt er sie disziplinarisch.
Der Scrum Master ist als Coach für den Prozess und die Beseitigung von Hindernissen verantwortlich. Unterschiedliche Teams und Situationen erfordern vom Scrum Master ein situatives Führen.
Zu Beginn einer Scrum-Implementierung ist der Scrum Master eine Vollzeitstelle, da die Umstellung der Abläufe, das Zusammenwachsen des Teams und das Einlernen der Rollen meist aufwändig sind. Er bildet das Team in Scrum aus. Ist Scrum erst einmal etabliert, kann der Scrum Master seine Rolle als Change-Manager wahrnehmen. Er hat dann die Zeit und auch die nötige Erfahrung, um Scrum im Unternehmen bekannt zu machen und dessen Akzeptanz zu steigern.
Stakeholder sind Rollen außerhalb von Scrum. Die folgenden Rollen können helfen, die unterschiedlichen Stakeholder und deren Aufgaben zu differenzieren.
Dem oder den Kunden wird das Produkt nach Fertigstellung zur Verfügung gestellt. Kunden können je nach Situation sowohl interne Fachabteilungen als auch externe Personen oder Gruppen sein.
Es ist Aufgabe des Product Owners, seine Kunden durch Lieferung des Wunschproduktes zu begeistern.
Deshalb sollten Product Owner und Kunden für die Dauer des Projektes im engen Austausch stehen.
Vor Beginn der Entwicklung sollte der Product Owner ein möglichst genaues Verständnis von der Wunschvorstellung seiner Kunden gewinnen. Die Kunden sollten schon nach den ersten Sprints Gelegenheit haben, sich die neuen Funktionalitäten anzuschauen und hierzu Feedback zu geben.
Anwender sind diejenigen Personen, die das Produkt benutzen.
Ein Anwender kann, muss aber nicht zugleich Kunde sein. Die Rolle des Anwenders ist für das Scrum Team von besonderer Bedeutung, denn nur der Anwender kann das Produkt aus der Perspektive des Nutzers beurteilen.
Anwender und Kunden sollten beim Sprint Review und beim Product Backlog Refinement hinzugezogen werden, um das Produkt zu erproben und Feedback zu geben.
Das Management trägt Verantwortung dafür, dass die Rahmenbedingungen stimmen.
Dazu gehören die Bereitstellung von Räumen und Arbeitsmitteln, aber auch generell die Unterstützung für den eingeschlagenen Kurs. Das Management ist dafür verantwortlich, das Scrum-Team vor externen Arbeitsanforderungen zu schützen, adäquate personelle Besetzungen zu finden sowie den Scrum Master dabei zu unterstützen, Hindernisse auszuräumen.
Ein Sprint ist ein Arbeitsabschnitt, in dem ein Inkrement einer Produktfunktionalität implementiert wird. Er beginnt mit einem Sprint Planning und endet mit Sprint Review und Sprint-Retrospektive.
Sprints folgen unmittelbar aufeinander.
Während eines Sprints sind keine Änderungen erlaubt, die das Sprintziel beeinflussen.
Ein Sprint umfasst ein Zeitfenster von ein bis vier Wochen.
Alle Sprints sollten idealerweise die gleiche Länge haben, um so dem Projekt einen Takt zu geben. Ein Sprint wird niemals verlängert – er ist zu Ende, wenn die Zeit um ist.
Ist das Ziel eines Sprints nicht mehr zu erreichen, beispielsweise weil das Team die Komplexität falsch eingeschätzt hat oder der Product Owner das Produktinkrement so nicht mehr will, dann kann der Sprint vom Product Owner abgebrochen werden.
In diesem Fall wird der aktuelle Sprint mit einer Sprint-Retrospektive beendet und der neue Sprint ganz normal mit Sprint Planning begonnen.
In Scrum spricht man von Ereignissen oder Aktivitäten statt von Meetings, um klarzustellen, dass es sich um Arbeit handelt. Alle Aktivitäten von Scrum haben feste Zeitfenster (Timeboxen), die nicht überschritten werden sollen.
Der Scrum-Prozess
Sprint Planning
Im Sprint Planning werden zwei Fragen beantwortet:
Was kann im kommenden Sprint entwickelt werden?
Wie wird die Arbeit im kommenden Sprint erledigt?
Die Sprint-Planung wird daher häufig in zwei Teile geteilt. Sie dauert in Summe maximal 2 Stunden je Sprint-Woche, beispielsweise maximal acht Stunden für einen 4-Wochen-Sprint.
Teil 1: Festlegung des Was
Der Product Owner stellt dem Entwicklungsteam die im Product Backlog festgehaltenen Produkteigenschaften in der zuvor priorisierten Reihenfolge vor.
Das Product Backlog sollte im Sprint zuvor im Product Backlog Refinement so weit vorbereitet worden sein, dass es geordnet, gefüllt und die Einträge für den nächsten Sprint geschätzt sind.
Das gesamte Scrum Team arbeitet im ersten Teil der Planung daran, ein gemeinsames Verständnis für die im Sprint zu erledigende Arbeit zu entwickeln.
Dabei werden die Eigenschaften und die Akzeptanzkriterien besprochen, beispielsweise die Gebrauchstauglichkeit. Außerdem einigt sich der Product Owner mit dem Entwicklungsteam auf die Kriterien, die am Ende des Sprints darüber entscheiden, ob die neue Funktionalität fertig ist oder nicht - siehe Definition of Done.
Ziel ist die Fertigstellung eines auslieferbaren Produkts
Ziel ist die Fertigstellung eines auslieferbaren Produkts: ein Produktinkrement, das hinreichend getestet und integriert ist, um für den Benutzer freigegeben werden zu können.
Anschließend prognostiziert das Entwicklungsteam die Anzahl der Product-Backlog-Einträge, die es im nächsten Sprint liefern kann.
Die Entscheidung, wie viele Einträge im nächsten Sprint umgesetzt werden, liegt alleine beim Team, während die Entscheidung über die Reihenfolge alleine beim Product Owner liegt.
Deshalb müssen beide konstruktiv zusammenarbeiten. Aus den ausgewählten Product-Backlog-Einträgen formuliert das Scrum Team gemeinsam ein Sprintziel.
Die ursprüngliche Beschreibung von Scrum verwendete den Begriff Commitment (Verpflichtung) statt Forecast (Prognose); dies wurde angepasst, weil es häufig zu Fehlentwicklungen zulasten der Qualität führte.
Teil 2: Festlegung des Wie
Im zweiten Teil der Sprint Planung plant das Entwicklungsteam im Detail, welche Aufgaben (Tasks) zum Erreichen des Sprintziels und zur Lieferung der prognostizierten Product-Backlog-Einträge notwendig sind.
Diese Planung macht das Entwicklungsteam, wobei der Product Owner für Fragen in Reichweite sein sollte.
Oftmals bilden sich zur Beantwortung der Wie-Frage Kleingruppen, in denen verschiedene Aspekte wie z. B. Architektur, Datenelemente und Schnittstellen geklärt werden.
Ergebnis ist das Sprint Backlog: der detaillierte Plan für den nächsten Sprint. Er enthält die für den Sprint geplanten Product-Backlog-Einträge und die Aufgaben zu deren Umsetzung. Häufig wird dafür ein Taskboard als Technik verwendet.
Daily Scrum
Zu Beginn eines jeden Arbeitstages trifft sich das Entwicklerteam zu einem max. 15-minütigen Daily Scrum, bei dem Scrum Master und Product Owner häufig anwesend, jedoch nicht aktiv beteiligt sind, falls sie nicht selbst Backlogelemente bearbeiten.
Zweck des Daily Scrum ist der Informationsaustausch.
Im Daily Scrum werden keine Probleme gelöst – vielmehr geht es darum, sich einen Überblick über den aktuellen Stand der Arbeit zu verschaffen. Dazu hat sich bewährt, dass jedes Teammitglied mit Hilfe des Taskboards sagt, was es seit dem letzten Daily Scrum erreicht hat, was es bis zum nächsten Daily Scrum erreichen möchte, und was dabei im Weg steht.
Beim Daily Scrum kann offensichtlich werden, dass die Erledigung einer Aufgabe länger als geplant dauert. Dann ist es sinnvoll, den Task in kleinere Aufgaben aufzuteilen, die dann auch von anderen Mitgliedern des Entwicklungsteams übernommen werden können.
Treten beim Daily Scrum Fragen auf, die sich nicht innerhalb der strikten 15-Minuten-Vorgabe beantworten lassen, so werden sie entweder notiert und dem Scrum Master übergeben, oder ihre Beantwortung wird auf ein späteres Meeting, häufig direkt im Anschluss, verlegt.
Sprint Review
Das Sprint Review steht am Ende des Sprints.
Hier überprüft das Scrum Team das Inkrement, um das Product Backlog bei Bedarf anzupassen.
Das Entwicklungsteam präsentiert seine Ergebnisse und es wird überprüft, ob das zu Beginn gesteckte Ziel erreicht wurde.
Das Scrum Team und die Stakeholder besprechen die Ergebnisse und was als Nächstes zu tun ist.
Im Sprint Review ist die Beteiligung von Kunden und Anwendern wichtig, da diese die fertige Funktionalität des Inkrements benutzen und validieren können.
Hieraus ergibt sich wichtiges Feedback für die weitere Produktgestaltung. Es kann sogar passieren, dass die Funktionalität alle Abnahmekriterien erfüllt und dennoch aus der Perspektive des Benutzers unbrauchbar ist, beispielsweise wenn ein Button an einer schwer auffindbaren Stelle platziert wurde. Häufig entsteht während des Reviews ein lebhafter Dialog, in dem den Anwesenden neue Funktionalitäten einfallen.
Das Ergebnis des Sprint Review ist das vom Product Owner notierte Feedback der Stakeholder. Dies ist eine notwendige Information bei der weiteren Gestaltung des Product Backlogs im nächsten Product Backlog Refinement.
Es ist Aufgabe des Product Owners, die entwickelten Funktionalitäten zu begutachten.
Anhand der im Sprint Planning 1 festgelegten Bedingungen entscheidet er, ob sie abgenommen werden können oder nicht.
Dabei soll er keine Kompromisse eingehen: Ein Team hat auch dann sein Ziel verfehlt, wenn es eine „fast fertige“, aber noch nicht getestete Funktionalität liefert. In diesem Fall kehren die nicht fertiggestellten User Stories in das Product Backlog zurück und werden vom Product Owner neu priorisiert.
Die Abnahme ist aber nicht primärer Gegenstand vom Sprint Review, bei dem es vorrangig um das Feedback der Stakeholder geht.
Die Abnahme der Funktionalitäten des Produktinkrements wird daher häufig im Rahmen des Sprints umgesetzt.
Das Sprint-Review dauert maximal 1 Stunde je Sprint-Woche.
Sprint Retrospektive
Die Sprint Retrospektive steht am Ende eines Sprints.
Hierbei überprüft das Scrum Team seine bisherige Arbeitsweise, um sie in Zukunft effizienter und effektiver zu machen.
Der Scrum Master unterstützt das Scrum Team darin, gute Praktiken und Verbesserungen zu finden, die im nächsten Sprint umgesetzt werden. Die Retrospektive ist eine gemeinsame Aktivität des Scrum Teams.
Das Team soll seine Arbeitsweise offen und ehrlich überprüfen können. Dazu müssen Kritik und unangenehme Wahrheiten offen geäußert werden können. Das schließt auch Gefühle und Empfindungen ein.
Die Retrospektive soll daher in einem geschützten Raum ablaufen. Stakeholder dürfen nur auf Einladung dazukommen. Als Struktur für die Sprint-Retrospektive haben sich fünf Phasen bewährt.
Die Verbesserungsmaßnahmen werden dokumentiert und geplant. Hierfür gibt es unterschiedliche Techniken. Einige Teams nutzen eine eigene Liste mit Hindernissen und Verbesserungsmaßnahmen (das Impediment Backlog), andere Teams nehmen Hindernisse und die entsprechenden Aktivitäten in das Sprint Backlog auf.
Die Sprint-Retrospektive dauert maximal 45 min je Sprint-Woche, also max. drei Stunden für einen 4-Wochen-Sprint.
Product Backlog Refinement
Das Product Backlog Refinement (auch Backlog Grooming genannt) ist ein fortlaufender Prozess, bei dem der Product Owner und das Entwicklungsteam gemeinsam das Product Backlog weiterentwickeln. Hierzu gehören:
Ordnen der Einträge
Löschen von Einträgen, die nicht mehr wichtig sind
Hinzufügen von neuen Einträgen
Detaillieren von Einträgen
Zusammenfassen von Einträgen
Schätzen von Einträgen
Planung von Releases
Für die Gestaltung des Produkts und des Product Backlogs können Stakeholder wertvolle Informationen liefern, indem sie dem Scrum Team erklären, wie sie sich eine Funktionalität im alltäglichen Gebrauch wünschen. Daher gibt es meistens auch Product-Backlog-Refinement-Treffen zusammen mit ausgewählten Stakeholdern.
Das Product Backlog Refinement sollte nicht mehr als 10 % der Zeit des Entwicklungsteams in Anspruch nehmen.
Artefakte sind die Dokumente welche in Scrum verwendet werden.
Product Backlog
Das Product Backlog ist eine geordnete Auflistung der Anforderungen an das Produkt.
Das Product Backlog ist dynamisch und wird ständig weiterentwickelt. Alle Arbeit, die das Entwicklungsteam erledigt, muss ihren Ursprung im Product Backlog haben.
Der Product Owner ist für die Pflege des Product Backlogs verantwortlich. Er verantwortet die Reihenfolge bzw. Priorisierung der Einträge.
Das Product Backlog ist nicht vollständig und erhebt auch nicht diesen Anspruch. Zu Beginn eines Projektes enthält es die bekannten und am besten verstandenen Anforderungen.
Die Priorisierung der Eintragungen erfolgt unter Gesichtspunkten wie wirtschaftlicher Nutzen, Risiko und Notwendigkeit. Eintragungen mit der höchsten Priorität werden als erste im Sprint umgesetzt.
Das Risiko einer Anforderung kann durch eine Analyse ihrer Abhängigkeiten zu anderen Anforderungen bestimmt werden. Diese Abhängigkeiten werden auch als Rückverfolgbarkeit (engl. requirements traceability) bezeichnet und im Werkzeug, welches das Product Backlog verwaltet (z.B. Issue Tracker), als Nebenprodukt erfasst.
Die Anforderungen im Product Backlog sollten nicht technisch, sondern fachlich und anwenderorientiert sein. Eine Möglichkeit, um diese Sichtweise zu unterstützen, ist die Formulierung der Produkteigenschaften als User Stories.
Sprint Backlog
Das Sprint Backlog ist der aktuelle Plan der für einen Sprint zu erledigenden Aufgaben.
Es umfasst die Product Backlog-Einträge, die für den Sprint ausgewählt wurden, und die dafür nötigen Aufgaben (z.B. Entwicklung, Test, Dokumentation). Das Sprint Backlog wird laufend nach der Erledigung einer (Teil-)Aufgabe von den Team-Mitgliedern aktualisiert. Dies dient zur Übersicht des aktuellen Bearbeitungsstands.
Um es für alle sichtbar zu machen, wird häufig ein Taskboard genutzt.
Product Increment
Das Inkrement ist die Summe aller Product-Backlog-Einträge, die während des aktuellen und allen vorangegangenen Sprints fertiggestellt wurden.
Am Ende eines Sprints muss das neue Inkrement in einem nutzbaren Zustand sein und der Definition of Done entsprechen.
Zum Kern von Scrum gehört eine Transparenz über den Fortschritt des Produkts und des Sprints – innerhalb und außerhalb des Teams.
Während das Produktinkrement den Fortschritt am deutlichsten sichtbar macht, so sind dennoch andere Techniken zur Fortschrittstransparenz notwendig.
Im Kern von Scrum wird für die Transparenz des Fortschritts keine spezifische Technik vorgegeben. Typischerweise werden hierzu Burndown-Grafiken verwendet.
Definition of Done
Die Definition of Done (DoD) ist ein gemeinsames Verständnis des Scrum Teams, unter welchen Bedingungen eine Arbeit als fertig bezeichnet werden kann. Sie enthält für gewöhnlich Qualitätskriterien, Einschränkungen und allgemeine nicht-funktionale Anforderungen.
Mit zunehmender Erfahrung des Scrum Teams entwickelt sich die Definition of Done weiter. Sie enthält dann strengere Kriterien für höhere Qualität.
Dazu gehört beispielsweise das Schreiben von Kommentaren, Unit Tests und Design-Dokumenten.
Die DoD wird von den Beteiligten zu Beginn eines Projektes festgelegt, und wird im Laufe der Entwicklung angepasst.
Die DoD hilft zu Beginn eines Sprints, die Anzahl und den Umfang der Tasks festzulegen. Es müssen aber nicht alle Aktivitäten der DoD auf jede User Story zutreffen.
Am Ende des Sprints dient die DoD neben den Akzeptanzkriterien jedes Product Backlog Eintrags dazu, zu entscheiden, ob ein Product-Backlog-Eintrag als fertig akzeptiert wird.
In der Verbindung mit Scrum werden die folgenden Techniken häufig genutzt. Diese Techniken gehören nicht zum Kern von Scrum, und zu allen Techniken gibt es mehrere Alternativen.
In Scrum werden User Stories zur Formulierung der Product Backlog-Einträge verwendet. Eine User Story beschreibt, welche Produkteigenschaft der Benutzer will und warum.
User Stories sind eine Technik zur Beschreibung von Anforderungen aus der Perspektive eines Benutzers unter Verwendung von Alltagssprache.
User Stories folgen im Allgemeinen diesem Muster:
Als NUTZER will ich FUNKTION oder EIGENSCHAFT, damit NUTZEN.
Bei einem Projekt zur Entwicklung eines städtetauglichen Elektrofahrrads könnte eine User Story demnach folgendermaßen lauten: Als 30-jährige Geschäftsfrau möchte ich auf dem Weg zur Arbeit nur wenig in die Pedale treten müssen, damit ich nicht verschwitzt in der Firma ankomme.
Es ist Aufgabe des Product Owners und des Teams, im Product Backlog Refinement zu klären, was genau damit gemeint ist, und welches die Akzeptanzkriterien sein sollen.
So könnte zum Beispiel vereinbart werden, dass bis zu einer Steigung von maximal 20 % der elektrische Antrieb so stark sein muss, dass die Fahrerin nicht mehr als 50 Watt durch eigenes Treten beisteuern muss.
Zudem muss das Entwicklungsteam mit dem Product Owner klären, ob sich diese User Story überhaupt in einem Sprint erledigen lässt oder ob sie in kleinere Storys heruntergebrochen werden muss.
Sobald eine User Story umgeschrieben oder um weitere Information ergänzt wird, werden auch diese Änderungen im Product Backlog festgehalten.
Fragen nach dem Wie, also nach der technischen Umsetzung einer User Story, gehören ins Sprint Planning und werden nicht im Product Backlog, sondern im Taskboard mit Hilfe der einzelnen Tasks festgehalten.
Das Taskboard ist eine Technik zur Visualisierung des Sprint Backlogs. Darauf lässt sich jederzeit erkennen, welche Product Backlog Einträge für den Sprint ausgewählt wurden, welche Aufgaben dazu zu bearbeiten sind, und in welchem Bearbeitungszustand diese Aufgaben sind.
Das Taskboard ist eine Kanban-Tafel.
Typischerweise besteht das Taskboard aus vier Spalten.
In der ersten Spalte Anforderungen werden die Product Backlog Einträge eingetragen, die das Entwicklungsteam für diesen Sprint ausgewählt hat – in der vom Product Owner priorisierten Reihenfolge.
Die drei weiteren Spalten enthalten die Aufgaben oder Tasks, die zur Umsetzung der jeweiligen Anforderung notwendig sind, in ihrem jeweiligen Bearbeitungszustand.
Die zweite Spalte enthält alle noch zu erledigenden Aufgaben, die dritte Spalte diejenigen in Bearbeitung und die vierte Spalte alle erledigten.
Im Daily Scrum erklärt jedes Mitglied des Entwicklungsteams anhand des Taskboards, an welcher Aufgabe es am Vortag gearbeitet hat, und ob diese erledigt wurde.
Tasks, die an einem Tag nicht beendet werden konnten oder bei denen Hindernisse den Fortschritt aufhalten, werden markiert. In diesem Fall sollten die Aufgaben zur Beseitigung des Hindernisses in das Taskboard aufgenommen werden. So können Hindernisse schnell identifiziert und die Beseitigungsmaßnahmen transparent gemacht werden.
Scrum schreibt keine spezifische Methode vor, Aufwände abzuschätzen. Bei einer guten Schätzmethode sollten die Beteiligten zunächst unbeeinflusst von den anderen Teilnehmern schätzen.
Andererseits sollte die Methode in annehmbarer Zeit zu einem akzeptierten und validen Ergebnis führen. Seit ca. 2005 ist Planungspoker eine gängige Methode in Scrum und generell in agilen Projekten. Übrigens: Die englische Bezeichnung "Planning Poker" ist eine geschützte Warenbezeichnung der Firma Mountain Goat Software.
Jeder Teilnehmer erhält einen Satz Spielkarten. Diese sind mit Schwierigkeitsgraden oder Story Points bedruckt, beispielsweise in der Systematik:
trivial – leicht – mittel – schwer – sehr schwer – überschwer
1, 2, 3, 5, 8, 13, 21, ... Diese Fibonacci-Zahlenfolge wird häufig gewählt, um der zunehmenden Unsicherheit in der Schätzung schwererer Aufgaben gerecht zu werden.
Das Planungsspiel läuft folgendermaßen:
Der Product Owner stellt die User Story vor, die es zu schätzen gilt.
Das Team klärt in der Diskussion mit dem Product Owner seine Fragen zu der Story.
Jedes Teammitglied wählt für sich eine Karte, die seiner Ansicht nach der Schwierigkeit der Story entspricht.
Alle gewählten Karten werden gleichzeitig aufgedeckt.
Die Teilnehmer mit der niedrigsten und der höchsten Schätzung erklären ihre Beweggründe.
Der Prozess wird wiederholt, bis ein Konsens gefunden ist.
Das Spiel wird wiederholt, bis alle User Stories geschätzt sind.
Bei einer größeren Zahl von User Stories ist es zweckmäßig, eine Zeitvorgabe pro Story zu vereinbaren, und diese jeweils mit einer Sanduhr oder Stoppuhr zu überwachen.
Ist die Zeit abgelaufen, ohne dass die Story geschätzt werden konnte, so ist das ein Indiz dafür, dass die Beschreibung nicht gut verständlich ist und neu verfasst werden sollte.
Das Impediment Backlog ist eine Technik, mit welcher der Scrum Master öffentlich alle Arbeitsbehinderungen sammelt. Es handelt sich um eine Liste von Hindernissen, Aufgaben zu ihrer Lösung und ihrem aktuellen Status.
Eine andere Technik ist es, Behinderungen und die Beseitigungsmaßnahmen auf dem Taskboard mit zu pflegen.
Fünf Phasen einer Retrospektive[Bearbeiten | Quelltext bearbeiten]
Als Struktur einer Sprint-Retrospektive haben sich fünf Phasen bewährt[71]:
Zuerst werden die Voraussetzungen für eine offene Atmosphäre geschaffen. Die Teilnehmer sollen sich wohl dabei fühlen, offene Punkte zu diskutieren. Dabei gilt die Annahme, dass jeder die bestmögliche Arbeit geleistet hat, die er oder sie leisten konnte, und zwar unabhängig davon, welche offenen Punkte identifiziert werden.
Zweitens werden Informationen gesammelt. Dies geschieht oft, indem man zurückblickt und identifiziert, was gut gelaufen ist und was nicht.
Im dritten Schritt werden Erkenntnisse entwickelt. In dieser Phase identifizieren Teams normalerweise, warum Dinge geschehen sind, damit nicht nur Symptome kuriert, sondern die tatsächlichen Ursachen identifiziert werden.
Viertens entscheidet man, was zu tun ist. Das umfasst Vereinbarungen über sinnvolle und realistische Schritte, die im nächsten Sprint umgesetzt werden sollen.
Zu guter Letzt wird die Retrospektive abgeschlossen.
Für die Gestaltung der fünf Schritte gibt es eine Vielzahl von möglichen Vorgehensweisen.[72]
Das Burn-Down-Chart dient der Visualisierung bereits geleisteter und noch verbleibender Arbeit. Das Burn-Down-Chart gibt es in zwei Varianten:
Als Sprint Burndown wird es zur Verfolgung vom Sprintfortschritt verwendet.
Als Release Burndown wird es zur Verfolgung vom Produktfortschritt über mehrere Sprints hinweg verwendet.
Beim Sprint Burndown wird auf der x-Achse der Zeitverlauf in Tagen und auf der y-Achse die Anzahl der noch zu erledigenden Tasks aufgetragen.
So ergibt sich eine Linie von offenen Aufgaben, die im Idealfall am Sprintende die Nulllinie trifft. Über das Sprint Burndown ist es möglich, die Erreichung des Sprint-Ziels besser abzuschätzen.
Das Entwicklungsteam aktualisiert im Daily Scrum das Sprint Burndown.
Alternativ können beim Sprint Burndown statt der Anzahl der Tasks auch die Summe der geschätzten Aufwände für jeden einzelnen Task eingetragen werden. Dies erfordert jedoch eine Schätzung der Restaufwände für alle Tasks, so dass diese Variante mehr Aufwand erfordert.
Da die Genauigkeit bei Tasks mit einem Aufwand von maximal einem Tag nur geringfügig besser wird, hat sich das Zählen der Tasks bei vielen Teams durchgesetzt.
Beim Release Burndown wird auf der x-Achse der Zeitverlauf in Sprints und auf der y-Achse die Anzahl der noch zu erledigenden Product-Backlog-Einträge aufgetragen, beispielsweise in Story Points. Ändert sich der Umfang des Product Backlog, so wird dies unterhalb der x-Achse eingetragen.
Bei jedem Sprint aktualisiert der Product Owner das Release Burndown.
Mit Hilfe des Release Burndown kann der Product Owner Umfang und Liefertermin des aktuellen Releases bestimmen.
Obwohl der Scrum Guide die essentiellen Elemente von Scrum vorschreibt, scheinen viele Unternehmen signifikant davon abzuweichen.
Die wenigste Variation findet sich in den Sprints und der Sprint-Länge, den Treffen, der Teamgröße und im Requirements Engineering. Die Unternehmen variieren am meisten in der Aufwandsschätzung und der Qualitätssicherung.
Bei der Verwendung von Scrum muss man sich darauf einstellen, dass die ursprünglichen Einschätzungen permanent über- oder untertroffen werden.
Scrum zeigt vom ersten Tag an Abweichungen vom Soll-Zustand an. Ob Scrum dazu führt, dass Produkte schnell, gut, günstig oder qualitativ hochwertig entwickelt werden, hängt davon ab, was das Scrum-Team mit den gewonnenen Erkenntnissen macht.
Nach Schwaber kann auch ein Team von Idioten nach Scrum arbeiten. Das Team liefert am Ende jedes Sprints zuverlässig Produktinkremente, hält alle Meetings ab, und verteilt die Rollen nach Scrum. Wenn aber das Scrum-Team die Ergebnisse nicht nutzt, um anders zu arbeiten und Anpassungen vorzunehmen, wird auch das Produkt nicht besser oder früher fertig sein.
Die Selbstorganisation im Entwicklungsteam impliziert, dass Hierarchien in Frage gestellt werden.
Mitglieder, die nicht bereit sind, ihre bisherige Position innerhalb des Entwicklungsteams aufzugeben, können daher Konflikte erzeugen.
Scrum fordert, dass alle Teammitglieder vielfältige Aufgaben eines Sprints bearbeiten können. Jemand, der sich exklusiv als Tester, Programmierer oder Architekt sieht, passt nicht optimal in ein Entwicklungsteam nach Scrum.
Ein gutes Team kann das berücksichtigen und die Nachteile kompensieren; für ein weniger erfahrenes Team können solche Mitarbeiter schwierig sein.
Im Rahmen von Werkverträgen und vor dem Hintergrund des Produkthaftungsgesetzes kann die Anwendung von Scrum begrenzt sein. Es besteht eine stärkere Unschärfe über die zu erbringende Leistung und deren Abnahmekriterien als bei traditionellen Vorgehensweisen. Bei Streitigkeiten kann dies dazu führen, dass keine eindeutige Aussage zur Vertragserfüllung getroffen werden kann.
In der Fachliteratur werden Vorschläge angeboten, wie Werkverträge für Scrum-Projekte zu gestalten sind.
Es konkurrieren mehrere Scrum-Zertifizierungen auf dem Markt. Neben Scrum-fokussierten Anbietern finden sich auch agile Erweiterungen und Anpassungen der etablierten Projektmanagement-Anbieter. Die Zertifizierungen weisen unterschiedliche Kosten, Voraussetzungen und Inhalte auf.
PMI
Ein übergreifendes Scrum-Zertifikat für Product Owner, Scrum Master und Entwickler ist das PMI Agile Certified Practitioner (PMI-ACP).
AXELOS/PRINCE2
Auch Axelos bietet als Ergänzung zu seiner PRINCE2-Zertifizierung ein agiles Zertifikat an – dabei geht es darum, wie PRINCE2 für agile Projekte angepasst werden kann.
Itemo / TÜV Süd
Die Itemo IT Education Management Organisation e.V. bietet in Kooperation mit dem TÜV SÜD Examination Institute eine deutschsprachige Ausbildung und Personenqualifikation mit einer Basiszertifizierung und zwei aufbauenden Zertifizierungen zum Scrum Master und Scrum Product Owner an.
Scrum Alliance
Die Basiszertifizierungen werden unterteilt in CSM (Certified ScrumMaster), CSPO (Certified Scrum Product Owner) und CSD (Certified Scrum Developer).
Für diese Zertifizierungen ist der Besuch eines Seminars eines zertifizierten Trainers (CST) erforderlich.
Darauf aufbauend ist die weiterführende Zertifizierung zum CSP (Certified Scrum Professional) möglich, die eine mehrjährige Erfahrung und den Nachweis von 70 Stunden qualifizierter Weiterbildung erfordert.
Der CSP muss alle 2 Jahre erneuert werden. Hierfür ist eine kontinuierliche Weiterbildung im Umfang von 40 Stunden nachzuweisen. Bis 2013 war anstatt des Trainingsnachweises eine dreistündige Prüfung abzulegen.
Die nächste Zertifizierungsstufe ist der Certified Scrum Trainer (CST) und der Certified Scrum Coach (CSC). Der Fokus des Trainers liegt mehr auf der Durchführung der CSM- und CSPO-Schulungen, und der Fokus des Coachs auf der Betreuung agiler Transitionen.
Um CST oder CSC werden zu können, ist ein umfangreiches Bewerbungsverfahren notwendig.
Scrum.org
Die Einstiegszertifizierung ist das kostenlose Scrum Open Assessment, welches Grundlage für den Professional Scrum Master (PSM I und PSM II), Professional Scrum Developer (PSD I) und Professional Scrum Product Owner (PSPO I und PSPO II) ist.
Es gibt diverse Werkzeuge wie Eylean Board, Agilo, Pangoscrum, Redmine, OpenProject, AgileZen, Agile Manager, TeamForge, Tinypm, ThoughtWorks Studios, Jira Agile, Pivotal Tracker, Scrumwise, VersionOne, ScrumWorks Pro, Banana Scrum, Team Foundation Server, taiga.io und ScrumTable, die darauf ausgelegt sind, die Einführung von Scrum und die darin anfallenden Prozesse zu erleichtern.
Hier ein kurzer Überblick über einige Werkzeuge: Eylean Board, Agilo, Pangoscrum, Redmine (verschiedene Plugins verfügbar), OpenProject, AgileZen, Agile Manager, TeamForge, Tinypm, ThoughtWorks Studios, Jira Agile, Pivotal Tracker, Scrumwise, VersionOne, ScrumWorks Pro, Banana Scrum, Team Foundation Server, taiga.io und ScrumTable