Agile Software-Entwicklung vs. Wasserfall-Modell: Was die Forschung sagt

Software-Projekte: Linear oder flexibel?

Bei der Software-Entwicklung bieten sich zwei grundsätzliche Ansätze an: das klassische lineare Wasserfall-Modell und flexible agile Entwicklungsmethoden.

Das Wasserfall-Modell beschreibt eine lineare Vorgehensweise bei der Software-Entwicklung: Die sequenziellen Entwicklungsprozesse sind in (aufeinander aufbauende) Phasen mit fest definierten Zielsetzungen unterteilt, dem Abschluss einer Phase folgt die nächste, der gesamte Projektzyklus wird im Vorhinein festgelegt.

Das Wasserfall-Modell erfordert eine sehr konkrete Planung und kann insbesondere bei wenig komplexen Projekten eine effektive und einfache Arbeitsmethode sein. Es weist jedoch auch einige gravierende Nachteile auf: Da die Phasen hintereinander ablaufen müssen, ist das Wasserfallmodell unflexibel Veränderungen gegenüber, das Projekt und die Anforderungen an das Ergebnis müssen schon früh extrem detailliert geplant werden, was in der Praxis oft gar nicht umsetzbar ist.

Vor allem können Änderungen aufgrund neuer Anforderungen sehr kostenintensiv sein und werden, je später die Phase, immer schwieriger umzusetzen. Dies führt unter Umständen auch dazu, dass die entwickelte Software schon bei ihrer Fertigstellung nicht mehr aktuell ist.

Auf der anderen Seite: Agile Entwicklungsmethoden auf der Basis von Scrum oder XP. Der iterative Ansatz basiert auf wenigen klaren Regeln, die es erlauben, auf geänderte Anforderungen, die in Software-Projekten besonders häufig auftreten, kontrolliert aber flexibel zu reagieren. Insbesondere ändert sich das klassische Dreieck des Projektmanagements: Aus einem Kompromiss aus Kosten, Zeit und Qualität wird ein Kompromiss aus Kosten, Zeit und Funktionalität. Es gibt also keine Kompromisse hinsichtlich der Qualität, dafür werden nicht sämtliche Funktionen von vornherein festgelegt, sondern nach und nach im Rahmen mehrerer Iterationen definiert und umgesetzt.

Eine ausführliche Einführung zu iterativen Arbeits- und Vorgehensweisen geben Ihnen unsere Artikel über Scrum und Extreme Programming.

Studien zeigen: Wasserfall-Methode gefährdet Projekte

//SEIBERT/MEDIA möchte Kunden überzeugen, in Software- und Web-Projekten auf agile Entwicklungsmethoden zu setzen. Und das aus guten Gründen.

Im Rahmen einer britischen Studie wurden 1.027 IT-Projekte, von denen nur 13% nicht gescheitert waren, auf Misserfolgsfaktoren hin untersucht: In 82% dieser Projekte hat die Anwendung der Wasserfall-Methode maßgeblich zum Scheitern beigetragen, und zwar insbesondere durch die umfangreiche Anforderungsfestlegung im Vorfeld. (Thomas, M.: IT Projects Sink or Swim. British Computer Society Review, 2001)

In einer anderen Studie wurde anhand von 6.700 Projekten untersucht, welche Faktoren Software-Projekte gefährden: Vier von fünf der ermittelten Schlüsselfaktoren stehen im Zusammenhang mit der Wasserfall-Methode, darunter die Schwierigkeiten, Anforderungen nachträglich zu modifizieren und Probleme bei der späten Integration von Funktionen. (Jones, C.: Patterns of Software Failure and Success. International Thompson Press)

Aus einer Umfrage unter Unternehmen, die auf agile Entwicklungsmethoden setzen, gehen diese hochinteressanten Ergebnisse hervor:

  • 88% der befragten Unternehmen geben an, die Produktivität habe sich verbessert.
  • 84% sagen aus, die Qualität sei gestiegen.
  • In 46% der Unternehmen sind die Projektkosten nach der Etablierung agiler Methoden gleich geblieben.
  • In 49% der Unternehmen sind die Kosten dank agiler Entwicklung gesunken.
  • 83% der Unternehmen geben an, es sei eine höhere Zufriedenheit der Kunden mit der neuen Software festzustellen.

(Corporate Report: Agile Methodologies Survey Results. Shine Technologies Pty Ltd., Victoria, Australia, 2003)

Eine vierte Studie, für die mehr als 8.000 Projekte ausgewertet wurden, hat bereits 1994 gezeigt, dass bei 37% aller IT-Vorhaben massive Probleme durch die frühe Festlegung auf bestimmte Anforderungen entstehen. (Jim Johnson et. al.: Chaos: Charting the Seas of Information Technology. Published Report, 1994)

Komplexe Projekte erfordern moderne, flexible Methoden

In komplexen Projekten, die naturgemäß vielen Änderungen unterworfen sind, ist die Anwendung iterativer Methoden unbedingt empfehlenswert. Mit dieser Empfehlung stehen wir natürlich nicht allein, prominente und renommierte Verfechter der iterativer Software-Entwicklung sind beispielsweise Harlan Mills, Frederick Brooks, Barry Boehm, James Martin, Tom DeMarco, Ed Yourdon und zahlreiche mehr. Stellvertretend für viele führende Software-Entwickler kommt Craig Larman angesichts der oben dargestellten und ähnlicher Forschungsergebnisse zu einem klaren Schluss:

Data shows that iterative and evolutionary development is correlated with lower risk, higher productivity and lower defect rates than waterfall methods. (Larman, C.: Agile & Iterative Development. Addison-Wesley, 2004)

Das Handwerkszeug für effektive, flexible Software-Entwicklung bei geringen Risiken und größtmöglicher Produktivität steht in Form von Methoden wie Scrum und XP längst zur Verfügung und wird von //SEIBERT/MEDIA bei der Zusammenarbeit mit langjährigen Kunden wie z.B. der Allsecur GmbH erfolgreich eingesetzt. Die Frage „What are the most exciting, promising software engineering ideas or techniques on the horizon?“ hat David L. Parnas, ein Vorreiter im Bereich der Software-Entwicklung, so beantwortet:

I don’t think that the most promising ideas are on the horizon. They are already here and have been for years, but are not being used properly.

Haben Sie Fragen zu agilen Entwicklungsmethoden? Planen Sie ein Software-Projekt oder benötigen Sie Unterstützung bei einem laufenden Vorhaben? Wir sind Experten für iterative Entwicklung und verfügen über jahrelange Erfahrung in der Anwendung von Scrum und XP. Bitte sprechen Sie uns an.

Weiterführende Informationen

Scrum: Agile Software-Entwicklung bei //SEIBERT/MEDIA
JIRA: Aufgabenmanagement, Scrum und agiles Projektmanagement für Entwickler und Manager
Grails: Kurze Entwicklungszeiten und nahtlose Java-Integration
Anatomie einer Iteration


Mehr über die Creative-Commons-Lizenz erfahren