Scrum ist heute eine der bekanntesten agilen Methoden der Softwareentwicklung bzw. Programmierung. Ziel dabei ist es den Prozess der Programmierung ständig zu verbessern, um höchste Qualität bei möglichst niedrigem Aufwand zu erreichen und flexibel auf die Kundenanforderungen reagieren zu können. Dafür stellt Scrum die nötigen Methoden und Arbeitsmittel zur Verfügung.
Warum scheitern immer noch so viele Softwareprojekte oder werden zu teuer?
Bei der Programmierung einer neuen Software wird nicht nur ein neues Programm entwickelt, sondern es werden in den meisten Fällen auch neue Prozesse im Unternehmen eingeführt, die mit der Software abgebildet werden müssen. Dies wird normalerweise durch ein einmal erstelltes Pflichtenheft definiert und beschrieben. Häufig müssen aber die Prozesse und Anforderungen im Laufe der Entwicklung angepasst und korrigiert werden, wofür die klassische Entwicklungsmethodik aber keine geeigneten Werkzeuge anbietet. Darüber hinaus muss sich ein festgelegter Anwenderkreis, neben seinen normalen Aufgaben im Unternehmen, intensiv mit der neuen Software und den abgebildeten Prozessen beschäftigt. Dies findet auf einer sehr abstrakten planerischen Ebene statt, die ein Nicht-Spezialist in der Regel nicht leisten kann.
Bei der klassischen Softwareentwicklung mit „Lastenheft -> Pflichtenheft -> Protoyp -> Beta I -> Beta II -> Release“ werden immer ganze Programmteile bzw. komplette Programmmodule definiert und umgesetzt. Die bringt folgende Probleme mit sich:
- Es werden wichtige Einzelheiten bei der Planung vergessen oder falsch eingeschätzt.
- Milesstones können sich durch zu lange Entwicklungszyklen leicht verschieben.
- Kurzfristige Anforderungsänderungen führen zu teilweise unübersehbaren Konsequenzen (finanzieller und zeitlicher Art).
- Die wiederholte Durchführung der Tests ganzer Programmteile bindet enorme Ressourcen beim Kunden.
Warum Scrum als Erfolgsgarantie?
Bei der agilen Softwareentwicklung mit Scrum wird der Rahmen der zu entwickelnden Software zusammen mit dem Kunden festgelegt. Es werden die Kernkomponenten der Anwendung definiert, ausgearbeitet und die Kosten festgelegt. Zu diesem Zeitpunkt findet noch keine durchgängige Detailplanung der einzelnen Programmteile statt.
Die Entwicklung der Software geschieht in konstanten Entwicklerteams. Es wird in 2-4 Wochenzyklen (Sprints) entwickelt. Nach Abschluss eines Sprints bekommt der Kunde eine lauffähige Software, die die zuvor gemeinsam definierten Funktionen enthält. Es ergeben sich daraus folgende Vorteile:
- Effektive und genaue Detailplanung mit verbindlichen Milestones.
- Die Software wächst in überschaubaren Schritten.
- Funktionen können kurzfristig ergänzt, korrigiert bzw. gestrichen werden.
- Der Kunde bekommt immer eine komplett lauffähige Anwendung.
- Es müssen immer nur die neuen Funktionen getestet werden.
Das alles bei einem festen Kosten- und Zeitrahmen!
Was ist Scrum?
Scrum basiert auf sich selbstorganisierenden Entwicklerteams. Teammitglieder belegen dabei verschiedene Rollen wie Scrum-Master und Product-Owner. Der Product-Owner arbeitet sehr eng mit dem Kunden zusammen und vertritt ihn innerhalb des Entwicklerteams. Der Product-Owner sieht das Projekt aus der Sicht des Kunden. Er hat die Aufgabe, die Anforderungen an die zu entwickelnde Software klar zu definieren, zu priorisieren und wenn nötig auch zu ändern.
Der Scrum-Master sorgt dafür, dass die Teams störungsfrei arbeiten können, wacht darüber, dass die Entwicklungsprozesse nicht auseinander brechen und stellt die Schnittstelle zum Produktverantwortlichen (Product-Owner) dar.
Scrum baut auf Entwicklungszyklen auf, die zwischen 2 und 4 Wochen dauern (Sprints). Vor Beginn eines Sprints plant das Team detailliert den Inhalt und die benötigten Zeiten für die Umsetzung der Anforderungen, die es vom Product-Owner erhalten hat. Ändern sich aus wichtigen Gründen die Vorgaben oder Anforderungen an die Software, so wird der entsprechende Sprint vorzeitig beendet und ein neuer Sprint mit den geänderten Anforderungen geplant. Alle weiteren Anforderungen an die Software, die sich während des Sprints ergeben werden vom Product-Owner in das ProductBacklog eingetragen und für kommende Sprints eingeplant.
Möchten Sie mehr über Scrum erfahren?
Wenn Sie mehr über Scrum und dessen Umsetzung in unseren Projekten erfahren möchten sprechen Sie uns bitte an und schicken uns eine kurze Anfrage mit Ihren Kontaktdaten.