Scrum

Scrum ist ein Vorgehensmodell der agilen Softwareentwicklung

Scrum ist einer von verschiedenen so genannten agilen Prozessen für Softwareentwicklung und Projektmanagement – andere sind beispielsweise Crystal, Extreme Programming (XP) oder Feature Driven Development (FDD).

Der Hindergrund: Klassische Software-Projekte zeigen häufig bestimmte Probleme, deren Ursache in den Vorgehensmodellen steckt, weil diese oftmals zu unflexibel und bürokratisch sind und das gesamte Team unnötigerweise in ein Korsett zwängen, welches seine Beweglichkeit einschränkt. Das Hauptproblem liegt in der realitätsfremden Vorstellung, man könne ein großes Software-Projekt zunächst komplett im Vorhinein analysieren, spezifizieren und die Aufwände genau vorhersagen. Dem tritt Scrum mit seiner agilen Vorgehensweise entgegen.

Schon in den 1980er Jahren gab es erste Ansätze, die bekannten Projektmanagement-Methodiken in Frage zu stellen und nach agileren Ansätzen zu suchen. Einige Jahre später wurden die ersten Scrum-Projekte durchgeführt. Etwa seit der Jahrtausendwende war der Erfolg von Scrum mit der explosionsartig wachsenden Zahl erfolgreicher Projekte nicht mehr zu stoppen.

Im Kern basiert Scrum auf einer inkrementellen Vorgehensweise, der Organisation von Entwicklungsabschnitten und Meetings in vordefinierten Zeitabschnitten und der Erkenntnis, dass ein funktionierendes Software-Produkt wichtiger ist als eine dreihundertseitige Spezifikation.

Scrum basiert auf einem gut abgestimmten Entwicklerteam

Scrum kennt drei Rollen für direkt am Prozess der agilen Softwareentwicklung Beteiligte: den Product Owner, der fachliche Anforderungen stellt und Prioritäten festlegt, den ScrumMaster, der die Vorgehensweise im Prozess managt und Hindernisse aus dem Weg räumt, sowie das Team, das das Softwareprodukt entwickelt. Daneben gibt es als Beobachter und Ratgeber noch die Stakeholder.

Die Anforderungen an die Softwareentwicklung bei Scrum werden in einer Liste  gepflegt, erweitert und nach Prioritäten geordnet. Diese Liste verändert sich ständig. Um ein sinnvolles Arbeiten zu ermöglichen, wird monatlich vom Team in Kooperation mit dem Product Owner ein definiertes Arbeitspaket dem höher priorisierten Ende der To-Do-Liste entnommen und komplett umgesetzt  – inklusive Test und Dokumentation. Dieses Arbeitspaket, das Increment, wird während des laufenden Umsetzungsprozesses nicht durch Zusatzanforderungen modifiziert, um seine Fertigstellung nicht zu gefährden. Alle anderen Teile der Liste können vom Product Owner in Vorbereitung für den nachfolgenden Durchgang verändert oder neu priorisiert werden.

Das Arbeitspaket wird in kleinere Aufgabenpakete (Tasks) heruntergebrochen und mit jeweils zuständigem Bearbeiter und täglich aktualisiertem Restaufwand in einer weiteren Liste festgehalten. Während der Umsetzung arbeitet das Team konzentriert und ohne Störungen von außen daran, diese Tasks in einen vollständig fertigen und potentiell produktiv einsetzbaren Anwendungsteil umzusetzen. Das Team gleicht sich in einem täglichen Scrum Meeting ab, damit jeder weiß, woran der andere zuletzt gearbeitet hat, was er als nächstes vor hat und welche Probleme es möglicherweise gibt.

Weitere Informationen zum Thema Scrum gibt es auf der Website der Wikipedia Enzyklopädie https://de.wikipedia.org/wiki/Scrum