„Agile“ und „Wasserfall“ (Letzteres wird auch als traditionell bezeichnet) sind zwei verschiedene Entwicklungsmethoden. Die agile Methode nutzt einen iterativen Ansatz, und die Wasserfallmethode verläuft sequenziell.
Zu Beginn eines neuen Projekts, Programms oder Produkts stehen Projektmanager vor der Entscheidung, welche Art von Bereitstellungsmethode sie verwenden sollten. Eine Bereitstellungsmethode ist im Wesentlichen ein Framework – also ein Prozess oder mehrere Prozesse, die die organisierte Planung, Entwicklung, Ausführung, Behebung, Überwachung und Prüfung der Arbeit ermöglichen. Zwei der am häufigsten verwendeten Methoden sind das traditionelle Wasserfall-Framework und der neuere Agile-Ansatz. Ein dritter Ansatz, der traditionelle und agile Arbeitsmethoden kombiniert, findet ebenfalls breite Akzeptanz.
Agil ist eine iterative Methode zur Softwareentwicklung, deren Ziel die Zusammenarbeit zwischen selbstorganisierenden und funktionsübergreifenden Teams ist. Erfahren Sie mehr über Agile.
Agile lässt den traditionellen Ansatz hinter sich, bei dem zugewiesene Ressourcen bestimmte Aufgaben ausführen und das Projekt anschließend in die nächste Phase verschoben oder der nächsten Ressource übergeben wird. Stattdessen setzt diese Methode auf spezielle Teams, die in der Lage sind, gemeinsam und gleichzeitig zu arbeiten. Diese Teams führen Aufgaben zur selben Zeit aus, müssen also nicht mehr warten, bis Aufgaben abgeschlossen sind. So können sie problemlos auf neue Anforderungen oder Probleme reagieren.
Wie bereits erwähnt, ist Agile iterativ und unterstützt kontinuierliche Releases. Die Arbeit wird in mehrere Abfolgen von wiederholten Zyklen aufgeteilt, die Iterationen genannt werden. So erhalten Endbenutzer kontinuierlich einen Mehrwert, statt dass der gesamte Wert erst bei Projektabschluss bereitgestellt wird. Agile spielt eine wichtige Rolle bei der kontinuierlichen Bereitstellung und kontinuierlichen Verbesserung.
Zwar können Teams unterschiedlichste Ansätze für die agile Methode nutzen, doch sie alle verlassen sich auf die folgenden Kernprinzipien:
- Anpassungsfähigkeit
Agile Projekte müssen die nötige Flexibilität bieten, um Architektur, Design, Projektergebnisse, Anforderungen und andere Elemente jederzeit während des Projekts zu ändern. - Schlanke Entwicklung
Die agile Methode nutzt den einfachsten Ansatz für die Entwicklung und beseitigt so unnötige oder redundante Schritte. - Teamarbeit
Der agile Ansatz erfordert effektives Teamwork und optimale Kommunikation – nur wenn diese beiden Punkte gegeben sind, lassen sich mehrere Aufgaben gleichzeitig abschließen. - Kundenbeteiligung
Agile Iterationen liefern ihren Mehrwert schrittweise. Teams können also mit Kunden zusammenarbeiten, um neue Ideen zu sammeln und Produkte zu überarbeiten. - Nachhaltigkeit
Die agile Methode legt den Schwerpunkt auf ein nachhaltiges, konstantes Entwicklungstempo. So können Teams einen Kundenwert schaffen, indem sie sich auf die tatsächlichen Ergebnisse konzentrieren, anstatt einfach nur panisch auf die nächste Frist hinzuarbeiten. - Zeit
Die Zeit, die Teams in agile Projekte investieren, wird in Sprints aufgeteilt. Das sind kleine Zeiteinheiten, in denen bestimmte Aufgaben abgeschlossen und anschließend geprüft werden. - Tests
Tests werden in jeder Phase agiler Projekte durchgeführt, nicht erst bei Abschluss des gesamten Projekts.
Seit der Einführung in den frühen 2000er Jahren hat Agile deutlich an Beliebtheit gewonnen. Zu den Vorteilen der agilen Methode gehören:
Vordefinierte Sprints ermöglichen die schnelle und vorhersehbare Bereitstellung neuer Funktionen. Außerdem können Beta-Tests früher als sonst durchgeführt werden.
Der agile Ansatz konzentriert sich auf einfache Zusammenarbeit, damit Teams sich flexibel selbst organisieren und eigenständig wichtige Entscheidungen treffen können.
Dank der Teamautonomie in Agile erhalten Teams die nötige Flexibilität, um genau die Methoden und Techniken auszuwählen, die am besten zum gewünschten Ergebnis passen. Gleichzeitig werden auch die Projekte selbst anpassungsfähiger, da mitten in der Entwicklung neue oder Backlog-Elemente eingeführt oder bestehende Elemente geändert werden können. Frühe Beta-Tests bieten Entwicklern außerdem entscheidendes Feedback, das sie für wichtige Änderungen nutzen können.
Für die agile Methode müssen Teams in der Lage sein, effektiv zu kommunizieren – sowohl intern als auch extern. Der Ansatz betont Direktheit und Klarheit und stellt sicher, dass regelmäßige persönliche Kommunikation stattfindet.
Bei der agilen Methode bestimmt der Kunde oder Endbenutzer die Priorität der Funktionen. So können Entwicklungsteams genau erkennen, welche Funktionen den besten Wert für das Unternehmen bieten.
Bei knappen Terminen und schwierigen, langfristigen Zielen kann es schnell passieren, dass Entwickler den Kunden aus den Augen verlieren. Agile richtet diesen Fokus neu aus und nutzt Kundenanforderungen und anderes Benutzerfeedback als Grundlage für Produktverbesserungen. Das führt nicht nur zu einer höheren Kundenzufriedenheit, sondern auch zu besseren Renditen.
Zwar gilt die agile Methode für viele als bester Ansatz, doch sie bringt auch einige Nachteile mit sich, die Sie vorab kennen sollten. Dazu gehören:
Wenn Kunden keine Zeit oder schlichtweg keine Lust haben, eng mit dem Entwicklungsteam zusammenzuarbeiten, dann fehlen das nötige Feedback und die erforderlichen Einblicke, um das Projekt voranzubringen.
Wenn Teammitglieder nur halbherzig versuchen, das Projekt effektiv und effizient abzuschließen, dann bricht der Selbstverwaltungsaspekt der agilen Methode in sich zusammen.
Einige Aufgaben – oder sogar bestimmte Unteraufgaben – sind möglicherweise zu zeitaufwändig, um sie in einem einzigen Sprint zu erledigen. Um diese Arbeiten durchzuführen, müssen Teams entweder ihre Prioritäten ändern oder kostspielige zusätzliche Sprints einführen.
Der iterative und inkrementelle Charakter von Agile ist weniger kompatibel mit der Projekt-Governance oder -überwachung. Teams, die ihre Governance nicht selbst managen können, lassen sich auch schlechter effektiv verwalten.
Die Tatsache, dass Agile funktionierende Software statt Dokumentation priorisiert, bedeutet manchmal, dass wichtige Aufzeichnungen auf der Strecke bleiben. Das kann ein Problem darstellen. Denn eine umfassende Dokumentation trägt dazu bei, dass Implementierungen besser geteilt werden können, zeigt die Überlegungen hinter bestimmten Entscheidungen auf und sorgt dafür, dass Teams leichter zu früheren Phasen zurückkehren können.
Häufig sind Unternehmensprozesse, Toolsets, Richtlinien, Organisationsstrukturen und Kontrollen nicht zuträglich für Agile. Daher erfordert eine effektive Agile-Implementierung weitreichende kulturelle Veränderungen im gesamten Unternehmen. Das kann zu Widerstand von Personen oder Abteilungen führen, die an traditionellere Praktiken gewöhnt sind.
Diese Methode ist ein traditioneller Entwicklungsansatz, bei dem auf lineare und sequenzielle Weise der Entwicklungslebenszyklus in spezifische Phasen aufgeteilt wird. Die jeweils nächste Phase kann hierbei nur beginnen, wenn die vorangegangene abgeschlossen wurde.
Der Wasserfall-Ansatz ist die früheste Entwicklungsmethode. Sie ist einfach zu verwenden und zu verstehen und ist in hohem Maße davon abhängig, dass Arbeit, Recherche, Dokumentation und Planung im Voraus stattfinden. Es ist ein Ansatz nach dem Motto „Zweimal messen, einmal sägen“: Alle Projektanforderungen werden zu Beginn des Projekts klar definiert, und es wird ein detaillierter Plan erstellt, um diesen Anforderungen gerecht zu werden.
Die traditionelle Entwicklungsmethode unterteilt Projekte in sieben verschiedene Phasen. Jede dieser Phasen ist unabhängig von den anderen. Eine neue Phase kann in der Regel nicht beginnen, bevor die vorherige Phase abgeschlossen ist. Darüber hinaus sind die meisten Phasen durch ein sogenanntes „Stage-Gate“ (also ein Phasentor) getrennt. Dieses Gate umfasst verschiedene Anforderungen, die abgeschlossen werden müssen, und Managemententscheidungen, die getroffen werden müssen, damit das Projekt in die nächste Phase übergehen kann. Diese Phasen lauten wie folgt:
- Konzeptfindung
Entwicklungsteams beginnen mit der Bewertung des anstehenden Projekts, einschließlich Vorteilen und potenziellen Kosten. - Dokumentation
System- und Softwareanforderungen sowie andere Ressourcen für das Projekt werden zusammengetragen und dokumentiert. - Analyse und Design
Teams analysieren das Projekt und bestimmen, wie das Produkt oder der Service funktionieren soll. Darüber hinaus werden hier bereits grundlegende Aufgaben ermittelt und eingeplant. - Code- und Komponententests
Die Programmierung der einzelnen Softwarekomponenten beginnt, einschließlich entsprechender Tests. Die Komponenten werden in die Softwarearchitektur integriert, die in früheren Phasen definiert wurde. - Systemweite Tests
Es finden Tests im gesamten System statt, darunter Fehlersuchen, Benutzerakzeptanztests (User Acceptance Tests, UATs) und andere grundlegende Checks. - Problembehebung
Fehler, ineffiziente Komponenten und andere Probleme, die in den vorherigen Phasen gefunden wurden, werden behoben bzw. optimiert. - Bereitstellung
Das fertige Produkt bzw. der fertige Service wird den Endbenutzern bereitgestellt.
Die erstmals 1970 beschriebene Wasserfall-Methode wird seit etwa einem halben Jahrhundert in Entwicklungsteams eingesetzt. Das liegt daran, dass sie bestimmte Vorteile bietet, darunter:
Die Wasserfallmethode ist wahrscheinlich am einfachsten in der Verwaltung. Hier erhält jede Phase spezifische Liefergegenstände, und es gibt einen klaren Überprüfungsprozess.
Wenn für ein Projekt mehrere Komponenten so entworfen werden müssen, dass sie die Integration externer Systeme ermöglichen, dann ist der Wasserfallansatz ganz klar im Vorteil – denn hier wird das Design bereits früh im Prozess abgeschlossen.
Produktanforderungen werden vor Entwicklungsbeginn vereinbart und dokumentiert, einschließlich einer vorhersagbaren und konkreten Liste von Funktionen.
Die intensivere Planung und Dokumentation vor Entwicklungsstart sorgen für eine bessere Übersicht der potenziellen Kosten und ermöglichen damit eine genauere Budgetierung.
Da der gesamte Arbeitsumfang im Voraus bekannt ist, ist die Messung des Fortschritts einfach und genau. Der Fortschritt wird in der Regel über Statusberichte gemessen, in denen Aufgaben hinsichtlich Zeitplan, Budget und Ressourcen grün, gelb oder rot markiert sind.
Auch die Ziele werden festgelegt, bevor die Entwicklung beginnt – sie bleiben also nicht flexibel, um später neue Anforderungen abzudecken.
Teammitglieder haben Zeit, um an anderen Projekten zu arbeiten, da sie ihren Beitrag nur in den Phasen leisten müssen, die ihnen zugeteilt sind.
Die Wasserfallmethode ist für Kunden unkomplizierter, da Endbenutzer nur in den Phasen Anforderungen und Überprüfung an der Entwicklung beteiligt werden müssen.
Dank des Schwerpunkts auf Planung und Dokumentation folgen Projekte einem klaren Pfad, sie lassen sich einfacher überprüfen, und die Ergebnisse lassen sich leichter ermitteln.
Die Verbreitung des agilen Ansatzes ist nicht zuletzt auf die Nachteile der Wasserfallmethode zurückzuführen. Zu diesen Nachteilen gehören:
Da die Wasserfall-Methode auf einer detaillierten Planung in der Anfangsphase beruht, können Projekte, die auf unerwartete Probleme, Hindernisse oder veränderte Anforderungen stoßen, nicht angepasst werden. Außerdem fließen Wasserfälle nur in eine Richtung: Es kann unmöglich oder zumindest sehr schwierig sein, zu früheren Phasen zurückzukehren, um Änderungen vorzunehmen.
Starr definierte Anforderungen lassen wenig Raum für Inspiration, Innovation oder Kreativität und hindern Entwickler möglicherweise daran, während des Projekts unerwartete Chancen zu nutzen.
Da Kunden weniger in Entwicklungsprozesse eingebunden sind, fühlen sie sich möglicherweise ausgeschlossen. Noch problematischer ist vielleicht, dass Kunden nicht wissen, wie das Ergebnis aussieht, bis das Projekt abgeschlossen ist. Auf der anderen Seite der Medaille wissen die Entwickler möglicherweise selbst nicht, wie das erwartete Ergebnis für den Kunden lautet – und das vergrößert die Kluft noch weiter. Und da Tests erst am Ende des Projekts durchgeführt werden, sind Bugs und UX-Probleme wahrscheinlicher.
Unklare Fristen für bestimmte Phasen können dazu führen, dass Projekte den Zeitplan überschreiten. Um das wieder wettzumachen, überstürzen Teams manchmal die letzten Phasen, einschließlich der Tests. Und das kann zu einer schlechteren Produktqualität führen.
Anforderungen müssen klar identifiziert und genehmigt werden, bevor die Arbeit beginnen kann. Ist dies nicht der Fall, können die einzelnen Teammitglieder die Anforderungen unterschiedlich interpretieren, was die Zusammenarbeit beeinträchtigt.
Angesichts der umfangreichen Planung und Dokumentation sind natürlich weniger Ressourcen für die tatsächliche Produktentwicklung verfügbar.
Agile und Wasserfall bieten jeweils ihre eigenen Vor- und Nachteile. Das Verständnis der spezifischen Anwendungsfälle für beide Optionen kann Unternehmen dabei helfen, die am besten geeignete Methode für das jeweilige Projekt auszuwählen.
Berücksichtigen Sie bei dieser Entscheidung folgende Punkte:
Für strengere Projektanforderungen eignet sich die Wasserfallmethode besser, während bei weniger Anforderungen und Regulierungen die Kreativität und Freiheit der agilen Methode voll zum Tragen kommt.
Für strengere Projektanforderungen eignet sich die Wasserfallmethode besser, während bei weniger Anforderungen und Regulierungen die Kreativität und Freiheit der agilen Methode voll zum Tragen kommt.
Strenge Prozesse machen die agile Bereitstellung sehr schwierig und profitieren stärker von einem traditionellen Wasserfallansatz. Agile ist effektiver, wenn Prozesse flexibler sind.
Die Wasserfall-Methode ist effektiv, wenn Kunden, Endbenutzer und Produktverantwortliche nicht an einer engen Zusammenarbeit mit dem Entwicklungsteam interessiert sind. Benutzer, die sich stärker beteiligen möchten, profitieren stärker von Agile.
Die Verbesserung bestehender Altprojekte, bei denen Funktionen bereits klar definiert sind und Integrationen etabliert sind, profitiert vom Wasserfall-Ansatz. Wenn das Projekt neue Wege beschreitet und etwas gänzlich Neues versucht wird, dann ist der iterative Ansatz von Agile besser geeignet, damit Teams dazulernen und sich anpassen können.
Die Wasserfall-Methode sorgt für ein vorhersehbares Ergebnis und funktioniert gut bei klar definierten Terminen und langfristigen Projekten. Kürzere und flexiblere Fristen funktionieren besser mit Agile.
Die Vorhersehbarkeit der Wasserfall-Methode eignet sich auch gut für unflexible Budgets, in denen jede Aktion und jede Ausgabe bereits früh im Prozess dokumentiert werden muss. Agile erfordert eine weniger starre Budgetierung: Hier liegt der Fokus auf Funktionen und Entwicklungsgeschwindigkeit und weniger auf Kosten.
Kleinere, klar definierte Projekte eignen sich oft besser für die Wasserfall-Methode. Größere, komplexere Projekte profitieren eher vom agilen Ansatz.
Bei der Koordination mit Remote-Mitarbeitern oder der Zusammenarbeit mit anderen Unternehmen ist die Wasserfall-Methode aufgrund des geringeren Bedarfs an persönlicher Zusammenarbeit die bessere Wahl. Wenn nur ein Unternehmen für das Projekt verantwortlich ist und sich Teammitglieder am selben Standort befinden, ist Agile effektiver.
Da beide Methoden, Agile und Wasserfall, erhebliche Vorteile bieten, versuchen Unternehmen auf der ganzen Welt, diese Vorteile zu kombinieren und gleichzeitig die jeweiligen Nachteile zu minimieren. Das Ergebnis dieser Bemühungen ist hybrides Projektmanagement.
Hybrides Projektmanagement vereint die agile mit der Wasserfallmethode, um eine Lösung zu schaffen, die Zeitaufwand, Ressourceneinsatz und Benutzerzufriedenheit optimiert.