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.

Agile Softwareentwicklung
ActiF
Requirement-Management (RM) und Implementierung (IMP) sind ist voll abgedeckt, keine Unterstützung gibt es für Wartung (W) und Betrieb (B). Auch der Test (T) ist schwach ausgeprägt. Besser schneidet AcriF bei der Integration (INT), Projekt-Management (PM), Qualitäts-Management (QM) und Systemdesign (SD) ab.
Adaptive Software Development (ASD)
ASD schneidet nur im Qualitäts-Management (QM) sehr gut ab. Disziplinen wie Integration (INT), Wartung (W), und Betrieb (B) werden überhaupt nicht abgedeckt. Projekt- und Requirement-Management (PM/RM), Systemdesign (SD), Implementierung (IMP) und Test (T) sind schwach ausgeprägt.
Agile Enterprise
Agile Enterprise leistet vollständige Unterstützung in den Bereichen Projekt-Management (PM), Requirements-Management (RM), Implementierung (IMP) und Test (T). Nicht ganz so gut sieht es bei der Integration/Einführung (INT), dem Qualitäts-Management (QM) oder dem Systemdesign/technische Konzeption (SD) aus. Schwachpunkt ist die Wartung (W), für den Betrieb (B) kommt überhaupt keine Unterstützung.
Agile Model Driven Development
AMDD deckt unter den Disziplinen des Software Engineering die des Test (T) vollständig ab. Gute Unterstützung gibt es auch für die Bereiche Integration/Einführung (INT), Wartung (W) und Betrieb (B) sowie für Implementierung (IMP). Auf mittlerem Niveau bewegen sich das Qualitäts-Management (QM), Requirements-Management (RM) und das Systemdesign/technische Konzeption (SD) während für Projekt-Management (PM) nur wenig Unterstützung kommt.
Behavior Driven Development
Behavior Driven Development schneidet nur im Requirements-Management (RM) sehr gut ab, gefolgt vom Qualitäts-Management (QM). Keine Punkte gibt es im Bereich Wartung (W), Betrieb (B) und Projekt-Management (PM). Die Disziplinen Systemdesign (SD), Implementierung (IMP), Test (T) und Integration (INT) schwächeln.
Crystal
Crystal hat seine Stärke im Bereich Test (T), auch das Qualitäts-Management (QM) und die Implementierung (IMP) werden gut abgedeckt. Mittel bis schwach ausgeprägt sind dagegen Projekt-Management (PM), Requirement-Management (RM), Integration/Einführung (INT) und Wartung (W). Keine Unterstützung gibt es für Betrieb (B) und Systemdesign/technische Konzeption (SD).
Design Driven Development
D3 unterstützt nur wenige Disziplinen im Software Engineering. Am ehesten gilt dies noch für das Requirement-Management (RM), schwache Abdeckung gibt es auch in den Bereichen Systemdesign/technische Konzeption (SD), Implementierung (IMP), Test (T) und Qualitäts-Management (QM). Keine Unterstützung gibt es für Integration/Einführung (INT), Wartung (W), Betrieb (B) und Projekt-Management (PM).
Dynamic System Development Method
DSDM spiel seine Stärken in den Bereichen Requirements-Management (RM), Systemdesign/technische Konzeption (SD), Implementierung (IMP), Test (T) und Integration/Einführung (INT) aus. Weniger gut werden die Aspekte der Wartung (W), des Betriebs (B) sowie des Projekt- (PM) und Qualitäts-Managements (QM) abgedeckt.
Eclipse Way Process
Aufgrund der Kombination unterschiedlicher Techniken im Eclipse Way Process ergeben sich zahlreiche Stärken. Disziplinen im Software Engineering, die vollständig abgedeckt werden, sind Projekt-Management (PM), Requirements-Management (RM), Systemdesign/technische Konzeption (SD), Implementierung (IMP) und Test (T). Nicht ganz so gut schneidet Integration/Einführung (INT) ab. Eine schwache Abdeckung gibt es für Wartung (W) und Qualtitäts-Management (QM), während Betrieb (B) überhaupt nicht unterstützt wird.
Evolutionary Process For Integrating Cots-Based Systems (Epic)
Epic hat seine besondere Stärke im Projekt-Management (PM). Recht gut abgedeckt werden auch Qualitäts-Management (QM), Requirements-Management (RM), Systemdesign/technische Konzeption (SD), Test (T) und Integration/Einführung (INT). Mittlere Abdeckung gibt es für den Bereich Implementierung (IMP), während Wartung (W) und Betrieb (B) überhaupt keine Unterstützung finden.
Evolutionary Project Management & Product Development (EVO)
Projekt-Management (PM) und Test (T) sind die Stärken des EVO-Vorgehens. Schwächer fallen Systemdesign/technische Konzeption (SD), Qualitäts-Management (QM), Requirements-Management (RM), Implementierung (IMP) und Integration/Einführung (INT) aus. Die Bereiche Wartung (W) und Betrieb (B) werden überhaupt nicht abgedeckt.
Extreme Programming
Extreme Programming (XP) deckt unter den Disziplinen des Software Engineering die Implementierung (IMP) und den Test (T) vollständig ab. Gute Unterstützung gibt es auch für die Bereiche Qualitäts-Management (QM) und Requirements-Management (RM). Mittlere Abdeckung erfährt das Systemdesign/technische Konzeption (SD) sowie die Integration/Einführung (INT), während Wartung (W) und Projekt-Management (PM) nur schwach ausgeprägt sind. Der Betrieb (B) ist nicht abgebildet.
Feature Driven Development
FDD deckt die Aspekte des Systemdesign/technische Konzeption (SD) vollständig ab. Nicht ganz so gut sieht es beim Projekt-Management (PM), Qualitäts-Management (QM), Requirements-Management (RM) und bei der Implementierung (IMP) aus. Wenig Abdeckung gibt es für Test (T) und Integration/Einführung (INT). Wartung (W) und Betrieb (B) werden überhaupt nicht unterstützt.
Iconix
Iconix deckt die Bereiche Qualitäts-Management (QM), Requirements-Management (RM), Systemdesign (SD), Implementierung (IMP) und Test (T) vollständig ab. Recht gut ist die Methode auch, wenn es um die Integration (INT) und das Projekt-Management (PM) geht. Defizite gibt es bei der Wartung (W), der Betrieb (B) wird überhaupt nicht berücksichtigt.
Internet-Speed Development
Internet-Speed Development ist im Bereich Integration und Einführung (INT) hervorragend. Keine Abdeckung erfährt der Bereich Wartung (W) und Qualitäts-Management (QM). Mäßige bis gute Abdeckung erzielt die Methode bei Betrieb (B), Projekt-Management (PM), Requirements-Management (RM), Systemdesign/technische Konzeption (SD), Implementierung (IMP) und Test (T).
Lean Software Development
Lean Software Development zeigt seine Stärken vor allem in den Bereichen Qualitäts-Management (QM) und Test (T). Auch das Systemdesign/technische Konzeption (SD) und die Implementierung (IMP) sind gut abgedeckt. Vergleichsweise schwach ausgeprägt sind dagegen die Bereiche Requirements-Management (RM), Integration und Einführung (INT), Wartung (W), Betrieb (B) und Projekt-Management (PM).
Microsoft Solutions Framework (MSF)
Das Microsoft Solutions Framework for Agile Software Development deckt die Bereiche Projekt-Management (PM), Implementierung (IMP) und Test (T) gut ab. Mittlere Unterstützung gibt es für Qualitäts-Management (QM), Requirements-Management (RM), Systemdesign/technische Konzeption (SD)sowie Integration/Einführung (INT). Wartung (W) und Betrieb (B) erfahren dagegen keine Abdeckung.
Mobile-D
Gute bis mittlere Abdeckung bietet Mobile-D für die Software-Engineering-Disziplinen Test (T), Implementierung (IMP), Requirements-Management (RM), Qualitäts-Management (QM) und Projekt-Management (PM). Schwach ausgeprägt sind Systemdesign/technische Konzeption (SD) und Integration/Einführung (INT). Keine Unterstützung gibt es für Wartung (W) und Betrieb (B).
Rapid Application Development
RAD deckt die Belange der Implementierung (IMP) voll ab, gut ist die Methode in den Bereichen Test (T) und Integration/Einführung (INT). Mittlere bis schwache Abdeckung gibt es fürs Requirements-Management (RM), Qualitäts-Management (QM), Projekt-Management (PM) und für die Wartung (W). Systemdesign/technische Konzeption (SD) und Betrieb (B) sind nicht berücksichtigt.
Scrum
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.
Test Driven Development
Seine Stärken zeigt TDD naturgemäß im Bereich Test (T), aber auch bei der Implementierung (IMP). Gute bis mittlere Abdeckung gibt es für das Qualitäts-Management (QM) und die Integration/Einführung (INT), während Wartung (W) und Requirements-Management (RM) nur schwach ausgeprägt sind. Keine Unterstützung erfahren die Disziplinen Betrieb (B), Projekt-Management (PM) sowie Systemdesign und technische Konzeption (SD).
Unified Process
Unter den Disziplinen im Software Engineering deckt UP das Requirements-Management (RM), das Systemdesign/technische Konzeption (SD) und die Implementierung (IMP) vollständig ab. Gute Unterstützung gibt es auch für die Bereiche Test (T) und Integration/Einführung (INT). Schwach ausgeprägt sind dagegen die Wartung (W), das Projekt-Management (PM) und das Qualitäts-Management (QM). Den Betrieb (B) unterstützt die Methode nicht.
Agile Unified Process
Der Agile Unified Process (AUP) deckt die Disziplinen Projekt-Management (PM) und Implementierung (IMP) vollständig ab. Gute Unterstützung kommt auch für das Requirements-Management (RM), das Systemdesign/technische Konzeption (SD), den Test (T) und die Integration/Einführung (INT). Schwach ist die Methode dagegen in den Bereichen Qualitäts-Management (QM) und Wartung (W), während der Betrieb (B) überhaupt nicht unterstützt wird.
Essential Unified Process
EssUP hat seine Stärken in den Software-Engineering-Disziplinen Projekt-Management (PM), Systemdesign/technische Konzeption (SD) und Implementierung (IMP). Gut abgedeckt sind auch Test (T), Integration/Einführung (INT) und Requirements-Management (RM). Etwas schwächer ist die Methode beim Qualitäts-Management (QM) und bei der Wartung (W) - der Betrieb (B) wird überhaupt nicht unterstützt.
Open Unified Process
Der Open Unified Process deckt die Software-Engineering-Disziplinen Projekt-Management (PM), Requirements-Management (RM), Systemdesign/technische Konzeption (SD) und Implementierung (IMP) vollständig ab. Auch die Bereiche Test (T) und Integration/Einführung (INT) werden gut unterstützt. Schwach ist OpenUP dagegen bei der Wartung (W), während der Betrieb (B) überhaupt nicht berücksichtigt wird.
Usability Driven Development
Usability Driven Development besitzt seine Stärken in den Bereichen Test (T) und Integration/Einführung (INT). Gut bis befriedigend ist die Methode auch beim Qualitäts-Management (QM), Requirements-Management (RM), Systemdesign/technische Konzeption (SD), bei der Implementierung (IMP) und beim Projekt-Management (PM). Schwächen gibt es bei der Wartung (W), der Betrieb (B) wird nicht unterstützt.

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:

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.
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

Zum Video: Scrum - das Rahmenwerk

(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)