Bei //SEIBERT/MEDIA arbeiten wir in internen und Kundenprojekten bevorzugt nach agilen Vorgehensmodellen (Scrum). In dieser Live-Session diskutiert Martin Seibert, welche Vorteile agile Methoden gegenüber klassischen Herangehensweisen (Wasserfall-Modell) im Projekt haben, wie Kunden durch den Einsatz von Scrum profitieren und wie man gegen Skepsis argumentieren kann.
Aufzeichnung der Sendung
Dieses Video downloaden (MP4, 200 MB)
Prinzipien des Wasserfall-Modells
- Lineare Vorgehensweise bei der Software-Entwicklung:
- Aufeinander aufbauende Phasen mit fest definierten Zielsetzungen -> dem Abschluss einer Phase folgt die nächste, der gesamte Projektzyklus wird im Vorhinein festgelegt
- Sehr konkrete Planung erforderlich
- In wenig komplexen Projekten eine effektive und einfache Arbeitsmethode
- Etabliertes Vorgehen, das Teams und Kunden kennen
- Unflexibel gegenüber Veränderungen
- Sehr frühe sehr detaillierte Planung nötig (Anforderungen)
- Schwierig, Erkenntnisse, die man im Projektverlauf gewinnt, zu berücksichtigen
- Je später die Projektphase, desto aufwändiger und teurer sind Änderungen
- Kompromiss aus Kosten, Zeit und Qualität
Studien zu Herausforderungen des Wasserfall-Ansatzes
Studie an 1.027 IT-Projekten (Thomas, M.: IT Projects Sink or Swim. British Computer Society Review, 2001)
82% aller Projekte, die nach der sog. Wasserfallmethode realisiert werden, haben mit massiven Problemen im Hinblick auf mindestens einen der Erfolgsfaktoren Qualität, Kosten und Zeit zu kämpfen oder scheitern gar, und zwar insbesondere durch die umfangreiche Anforderungsdefinition im Vorfeld.
Studie an 6.700 Projekten (Jones, C.: Patterns of Software Failure and Success. International Thompson Press)
Vier von fünf Schlüsselfaktoren, die Software-Projekte gefährden, stehen im Zusammenhang mit der Wasserfall-Methode, darunter die Schwierigkeiten, Anforderungen nachträglich zu modifizieren und Probleme bei der späten Integration von Funktionen.
Studie an über 8.000 Projekten (Jim Johnson et. al.: Chaos: Charting the Seas of Information Technology. Published Report, 1994)
37% aller IT-Projekte haben massive Probleme durch die frühe Festlegung auf bestimmte Anforderungen entstehen.
Charakteristika agiler Entwicklungsmethoden
- Iteratives Vorgehen (Sprints): Nicht sämtliche Anforderungen im Vorfeld festgelegt
- Strikte Priorisierungen und präzise Aufwandsschätzungen von Funktionen
- Kontrollierte und flexible Reaktionen auf geänderte Anforderungen
- Kompromiss aus Kosten, Zeit und Funktionalität; Qualität ist nicht verhandelbar
- Regelmäßige Auslieferungen eines potenziell marktreifen Produkts
Ausführliche Grundlageninfos: Agilität und Scrum bei //SEIBERT/MEDIA
Studien zu den Potenzialen von "Agile"
Umfrage unter Unternehmen, die agile Entwicklungsmethoden einsetzen (Corporate Report: Agile Methodologies Survey Results. Shine Technologies Pty Ltd., Victoria, Australia, 2003)
- 88% geben an, die Produktivität habe sich verbessert.
- 84% geben an, die Qualität sei gestiegen.
- 46% geben an, die Projektkosten seit der Etablierung von Agile seien gleich geblieben.
- 49% geben an, die Projektkosten seien dank agiler Entwicklung gesunken.
- 83% geben an, die Kundenzufriedenheit mit den Projektergebnisse habe sich erhöht
Umfrage unter 5.000 Teilnehmern zu den Auswirkungen agiler Vorgehensweisen (State of Agile Development Survey 2010)
- Schnellere und bessere Reaktionsmöglichkeiten bei Anforderungsänderungen: 87%
- Höhere Projekttransparenz: 78%
- Produktivitätssteigerung: 74%
- Größere Motivation im Team: 71%
- Frühere Marktreife der Software: 70%
- Bessere Vereinbarkeit von IT- und Geschäftszielen: 68%
- Höhere Qualität: 65%
Craig Larman: Agile & Iterative Development. Addison-Wesley, 2004:
Data shows that iterative and evolutionary development is correlated with lower risk, higher productivity and lower defect rates than waterfall methods.
Kundennutzen durch den Einsatz von Scrum
Striktes Vorgehen nach Kunden-Prioritäten
- Der Kunde setzt die Prioritäten, das Team geht nach diesen vor. (Anforderungen, die unbedingt umgesetzt werden müssen. Anforderungen, die möglichst umgesetzt werden sollen. Anforderungen, die umgesetzt werden könnten, sofern das Budget dies noch hergibt.)
- Die am höchsten priorisierten Anforderungen werden in jedem Fall in hoher Qualität realisiert, die niedriger priorisierten Funktionen je nach Zeit und/oder Budget.
Regelmäßig funktionsfähige Zwischenstände
- Nach jedem Sprint gibt es einen aktuellen, lauffähigen Stand der Software.
- Funktionen, die später realisiert werden, greifen dann mit den bestehenden ineinander
- Fällt Anpassungsbedarf auf, kann er für die nächste Zeit jederzeit eingeplant werden.
Mehr Flexibilität
- Verändern sich Prioritäten und/oder Anforderungen im Projektverlauf, erlaubt Scrum flexible Reaktionen.
- Prioritäten und Anforderungen lassen sich stets ändern, sofern sie nicht gerade im Sprint zur Umsetzung vorgesehen sind.
Bessere Verteilung der Arbeitslast
- Anforderungen werden über die gesamte Projektdauer fortlaufend verfeinert und müssen nicht sämtlich im Vorfeld ausdetailliert vorgelegt werden.
Nachhaltige Ergebnisse
- Qualität ist in Scrum-Projekten nicht verhandelbar.
- QS-Maßnahmen sind deshalb feste Bestandteile der Umsetzung einer Anforderung und werden unbedingt umgesetzt.
- Geringere Weiterentwicklungs- und Wartungskosten
- Keine kurzfristigen Erfolge auf Kosten langfristiger Ziele
Wann sind agile Methoden sinnvoll?
Arbeitet ein Unternehmen mit dem Wasserfall erfolgreich, besteht kein Handlungsdruck. Scrum sollten nicht einfach deshalb eingeführt werden, weil es in ist:
If it ain’t broke, don’t fix it. If your organization is applying a waterfall-oriented or any other process it has high success rates with a good productivity, don’t change. Adopting an iterative or agile method should be motivated by a challenge, not method du jour fads.” – Craig Larman
Die Entscheidung ist individuell unter Berücksichtigung dieser Fragen zu treffen:
- Wie dynamisch ist das Umfeld?
- Wird häufig ein aufreibendes Change-Request-Management betrieben?
- Torpedieren oft Änderungen den Projektplan?
- Werden Projekte während ihres Verlaufs regelmäßig durch Nutzerfeedback, Management-Entscheidungen und/oder technologische Entwicklungen beeinflusst?
Wer solche Herausforderungen erlebt und in Wasserfall-Projekten immer wieder mal gerissene Zeitpläne, überzogene Budgets und/oder halbfertig ausgelieferte Produkte erlebt, sollte sich ernsthaft mit agilen Methoden beschäftigen: Genau in solchen Fällen erweist sich Agile als sehr mächtig.