Agile Softwareentwicklung

Scrum - das Rahmenwerk

01.03.2013
Scrum ist ein agiles Rahmenwerk sowohl für die Softwareentwicklung als auch für das Projekt-Management, das von Ken Schwaber, Jeff Sutherland und Mike Beedle auf Grundlage der "Schlanken Produktion" (Lean Production) entworfen wurde.

Beide Methoden, Lean Production und Scrum, fokussieren dabei auf die ständige Weiterentwicklung (Mitarbeiter, Prozesse, Ressourcen, Methoden) mit dem Ziel, die Produktion permanent zu verbessern um höchste Qualität bei minimalem Aufwand zu erreichen.

Bei Scrum besteht die grundsätzliche Hypothese, dass Produktionsfertigungs- wie auch Entwicklungsprozesse so umfangreich sind, dass sich die einzelnen Phasen sowie Arbeitsschritte im Vorfeld nicht planen lassen. Organisiert sich jedoch ein Team nach festgelegten Vorgaben selbst, führt dies zu mehr Effektivität.

Scrum benutzt für bekannte Standardbegriffe einen eigenen Wortschatz. Aus diesem Grund werden nachfolgend die wichtigsten Begrifflichkeiten kurz erläutert.

Rollen in Scrum

Am Prozess direkt sind drei Rollen beteiligt.

Product Owner: Der Product Owner nimmt die Auftraggeber-Rolle wahr und wird im Allgemeinen vom Fachbereich gestellt. Er schreibt und priorisiert die Anforderungen und legt deren Reihenfolge fest. Dem Team steht er für Auskünfte zur Verfügung und ist zugleich für den Projekterfolg verantwortlich.

Scrum Master: Als Coach und Moderator des Teams sorgt der Scrum Master dafür, dass die Scrum-Regeln eingehalten werden. Er leitet den gesamten Prozess, eliminiert Störungen und arbeitet eng mit dem Product Owner zusammen, um das Projekt möglichst wertschöpfend für das Unternehmen zu gestalten. Zudem hilft er dem Team, seine Produktivität zu steigern.

Team: Innerhalb des Teams sind Mitarbeiter mit verschiedenem Fachwissen an der Entwicklung des Produktes beteiligt. Das Team besitzt alle Qualifikationen, um die definierten Anforderungen in Funktionalitäten umzusetzen.

Hauptelemente in Scrum

Product Backlog: Im Product Backlog werden die Eigenschaften des zu entwickelnden Produkts priorisiert aufgelistet. Dabei können Anforderungen entfernt und neue Anforderungen hinzugefügt werden. Die Abarbeitung der Anforderungen erfolgt nach absteigender Priorität.

Sprint: Der Sprint stellt einen festgelegten Zyklus (Iteration) in der Regel von zwei bis vier Wochen dar, bei dem das Produkt entwickelt wird. Am Ende eines jeden Sprints kann ein funktionsfähiges Inkrement ausgeliefert werden. Um jedoch einen wirklichen Mehrwert für das Unternehmen zu erzielen, sind meist mehrere Sprints nötig.

Sprint Backlog: Der Sprint Backlog legt den Arbeitsumfang des Teams für jeden einzelnen Sprint fest. Enthalten darin sind die aus dem Product Backlog ausgewählten Anforderungen. Darüber hinaus erfolgt eine regelmäßige Zusammenstellung aller Aufgaben, die noch offen sind, um das Ziel des Sprints zu erreichen.

Daily Scrum: Es handelt sich um eine maximal 15-minütige Besprechung, die täglich durchgeführt wird. Die regelmäßige Kommunikation dient dem Informationsaustausch untereinander in Bezug auf:

  • Aktueller Stand

  • Zukünftige Aufgaben

  • Aufgetretene Probleme.

Ablaufbeschreibung in Scrum

In einer Liste (Product Backlog) werden Anforderungen (Requirements) aufgenommen, ergänzt und priorisiert. In Zusammenarbeit mit dem Product Owner werden die höher priorisierten Anforderungen im Product Backlog regelmäßig vom Team extrahiert und während einer Iteration (Sprint) vollständig in Funktionalität umgesetzt. Die aus dem Product Backlog bisher nicht extrahierten Teile können vom Product Owner für nachfolgende Sprints neu priorisiert werden.

Der Scrum-Prozess.
Der Scrum-Prozess.
Foto: BQI

Beim Sprint arbeitet das Team konzentriert und ohne Störungen daran, die Anforderungen aus dem Sprint Backlog in ein vollständig fertiges und potentiell produktiv einsetzbares Anwendungsteil (Potentially Shippable Functionality) umzusetzen. Täglich erfolgt ein, auf 15 Minuten begrenztes, Informations- Meeting (Daily Scrum), um die Teammitglieder untereinander auf den gleichen Wissensstand zu bringen sowie proaktiv auf mögliche Probleme hinzuweisen. Am Ende des Sprints demonstriert das Team allen beteiligten Personen die vollständig entwickelten sowie lauffähigen Eigenschaften am System in Echtzeit (Sprint Review Meeting).

Im Video: Scrum - Sprint, die Taktfrequenz des Projekts

(Quelle: video2brain, Trainer: Udo Wiegärtner)

Reaktionen der Teilnehmer und neue Anforderungen fließen dabei in das nächste Sprint Planning Meeting ein, das vor jedem Sprint abgehalten werden muss. Der Prozess (siehe Abbildung ) wird erneut durchlaufen.

Bewertung BQI Research

Foto: BQI

Scrum punktet in den Software-Engineering-Disziplinen Projekt-Management (PM) und Requirements-Management (RM). Gut abgedeckt sind auch das Qualitäts-Management (QM) und die Integration/Einführung (INT). Nur mäßige Unterstützung gibt es dagegen für Systemdesign/technische Konzeption (SD), Implementierung (IMP), Test (T) und Wartung (W). Der Betrieb (B) ist nicht abgedeckt. (ph)

  • Bekanntheitsgrad und Verbreitung sind hoch.

  • Spezielle Tool-Unterstützung ist vorhanden.

  • Die Methode ist normiert/standardisiert und zertifiziert.

  • Keine Lizenzierung erforderlich.

  • Support ist vorhanden.