Scrum

Funktionierende Software im Rythmus

Scrum basiert auf einem einfachen Prinzip. Man macht eine Liste von Produktanforderungen. Dann wählt man einige davon aus und entwickelt über einen relativ kurzen Zeitraum Software, die diese auswählten Anforderungen erfüllt. Danach liefert man, erhält Rückmeldungen vom Anwender/Kunden und beginnt erneut mit der Auswahl.

Scrum Rahmenmodell

Nicht verhandelbar ist, daß am Ende eines Durchlaufs (Sprint) funktionsfähige, getestete und produktionsreife Software steht. So wird dem Auftraggeber eine Wahlmöglichkeit geschaffen. Er kann entscheiden die Software mit dem jetzigen Funktionsumfang einzusetzen oder auf die nächste verbesserte Version zu warten.

Schlüsselbegriffe

Produktverantwortlicher (Product Owner)
Seine Aufgabe ist die Liste der zukünftigen Produktanforderungen zu pflegen und dem Entwicklungsteam für Fragen bgzl. der Details zur Verfügung zu stehen. Er definiert "was wollen wir".
Scrum Master
Er hilft dem Team die grundlegenden Regeln von Scrum einzuhalten und unterstützt das Team bei der Ausräumung von Problemen außerhalb des Teams, damit das Team sich auf die eigentliche Entwicklungsarbeit konzentrieren kann.
Liste der Produktanforderungen (Product Backlog)
Diese Liste enthält Beschreibungen dessen was das zu entwickelte Produkt können soll und ist nach Prioritäten geordnet. Der Produktverantwortliche kümmert sich darum, daß diese Liste möglichst gut den jeweils aktuellen Anforderungskatalog enthält und fügt Dinge hinzu oder nimmt weg oder ordnet sie neu.
Sprint-Planung
Im Rahmen der Sprint-Planung legt das Team fest welche Produktanforderungen im aktuellen Sprint erfüllt werden sollen.
Sprint
Im Sprint wird die eigentliche Entwicklungsarbeit durchgeführt. Am Ende des Sprints steht lauffähige Software, die potenziell in Produktion gegeben werden kann.
Tägliche Koordinierung (Daily Scrum)
Täglich stehen die Mitglieder des Teams für ein paar Minuten zusammen, um untereinander die jeweilige Tagesarbeit zu koordinieren.
Sprint-Nachbereitung (Sprint Review)
Nach Ende des Sprints setzen sich die Team-Mitglieder zusammen, um ihm Rahmen einer kurzen Rückschau zu betrachten was während des Sprints gut gelaufen ist oder wo es Verbesserungsbedarf gibt.

Vorteile

Der wesentliche Vorteil von Scrum ist, daß sehr zielgerichtet Software entwickelt wird. Durch die Vorgabe, daß am Ende eines Sprints lauffähige Software steht wird von ganz allein das Augenmerk aller Beteiligten auf das Wesentliche gelenkt. Ein zweiter Vorteil ist, daß inkrementell entwickelt wird und so nach jedem Sprint, der ja nur wenige Tage dauert, auf veränderte Anforderungen reagiert werden kann.

Herausforderungen

Trotz seiner Einfachheit bringt die Arbeitsorganisation mit Scrum eine Menge Schwierigkeiten ans Tageslicht. Die führen dann meist dazu, daß das Team es nicht schafft in der relativ kurzen Zeit, die für einen Sprint zur Verfügung steht, lauffähige und vollständig getestete Software abzuliefern. Häufig wird dann als Reaktion entweder die Zeit für den Sprint verlängert oder Teilaufgaben, wie z.B. das Testen, auf den nächsten Sprint verlagert. Am Ende stellen sich die erhofften Vorteile nicht ein.

So einfach und doch ohne Erfahrung kaum erfolgreich umzusetzen

Scrum hört sich wirklich einfach an. Versteht man aber, daß es sich bei Scrum nur um ein Rahmenmodell handelt und überhaupt nicht um eine komplette definierte Vorgehensweise alter Schule, so wird klar, daß es zur erfolgreichen Anwendung eine Menge Erfahrung braucht. Es geht nämlich gar nicht darum Scrum korrekt anzuwenden, sondern im Gegenteil eine Vielzahl anderer Maßnahmen durchzuführen, die das gute Funktionieren von Scrum erst ermöglichen.