Wasserfall vs. agil: Vorgehen, Planung, Umgang mit Änderungen, Tests und passende Projekte

Das Wasserfallmodell ist ein Entwicklungsmodell, das Anforderungsdefinition, Entwurf, Programmierung und Test der Reihe nach von oben nach unten durchläuft und grundsätzlich erst dann zur nächsten Phase übergeht, wenn die Ergebnisse der vorigen Phase festgeschrieben sind. Da der Gesamtplan zu Beginn feststeht, lassen sich Fortschritt und Kosten gut steuern, doch Fehler in den Anforderungen, die erst in späteren Phasen entdeckt werden, verursachen viel Nacharbeit. Agile Softwareentwicklung ist ein Sammelbegriff für Vorgehensweisen, die kurze Iterationen von einigen Wochen wiederholen, dabei jedes Mal lauffähige Software erstellen, die Rückmeldungen der Nutzer aufnehmen und den Plan an sich ändernde Anforderungen anpassen; typische Methoden sind Scrum und Extreme Programming (XP). Wasserfall passt, wenn die Anforderungen klar und stabil sind, agil, wenn sich Anforderungen leicht ändern und nutzbare Funktionen früh geliefert werden sollen.

MerkmalWasserfallmodellAgile Softwareentwicklung
Ablauf der PhasenAnforderungsdefinition → Entwurf → Programmierung → Test, jede Phase einmal, der Reihe nach von obenKurze Iterationen (in Scrum Sprints) mit Planung, Entwurf, Implementierung und Test, viele Male wiederholt
PlanungUmfang, Zeitplan und Kosten des Gesamtprojekts werden zu Beginn festgelegt, und die Arbeit folgt diesem PlanEine grobe Richtung wird festgelegt, und der Plan wird in jeder Iteration überarbeitet, die wichtigsten Punkte zuerst
Umgang mit AnforderungsänderungenÄnderungen nach dem Festschreiben der Ergebnisse der vorigen Phase verursachen viel Nacharbeit und durchlaufen ein ÄnderungsmanagementverfahrenÄnderungen werden vorausgesetzt und lassen sich leicht in den Plan der nächsten Iteration aufnehmen
Wann lauffähige Software entstehtVor allem gegen Ende der Entwicklung; nach dem Test wird alles auf einmal übergebenJede Iteration liefert lauffähige Software (in Scrum ein Inkrement)
Wann getestet wirdNach der Programmierung: Modul-, Integrations-, System- und Abnahmetest der Reihe nach (im V-Modell den Entwurfsphasen zugeordnet)In jeder Iteration; Änderungen werden oft jedes Mal mit automatisierten Tests und Continuous Integration geprüft
DokumentationFür jede Phase werden Anforderungsspezifikationen, Entwurfsdokumente usw. erstellt und in Reviews festgeschriebenLauffähige Software steht im Vordergrund, die Dokumentation beschränkt sich oft auf das Nötige
Einbindung der Nutzer (Auftraggeber)Vor allem bei der anfänglichen Anforderungsdefinition und beim abschließenden AbnahmetestPrüfen das Ergebnis in jeder Iteration und geben Rückmeldung; in Scrum legt der Product Owner die Prioritäten dessen fest, was gebaut wird
FortschrittskontrolleGemessen an abgeschlossenen Phasen und Ergebnissen; gut mit einem Projektstrukturplan (PSP) und Gantt-Diagrammen zu steuernIn jeder Iteration gemessen an fertigen, lauffähigen Funktionen
Passende ProjekteKlare, stabile Anforderungen; Spezifikationen, die früh zusammen mit Hardware feststehen müssen; Verträge, die Umfang und Kosten im Voraus festlegen müssenAnforderungen, die sich leicht ändern, oder neue Dienste, bei denen man die Reaktion der Nutzer schon während der Entwicklung prüfen will

Die Zahlenwerte sind typische Größenordnungen und variieren je nach Prozessgeneration und Produkt.

Wann welche Variante?

Wasserfallmodell
Wenn die Anforderungen von Anfang an klar sind und sich kaum ändern, wenn viele Organisationen beteiligt sind und in jeder Phase Freigaben und Dokumente verlangt werden oder wenn die Spezifikation, wie bei eingebetteten Geräten, früh passend zur Hardware feststehen muss.
Agile Softwareentwicklung
Wenn zu Beginn unklar ist, was den Nutzern tatsächlich hilft, wenn Prioritäten mit Markt und Anforderungen wechseln sollen oder wenn nutzbare Funktionen früh geliefert werden sollen, sei es auch nur schrittweise. Voraussetzung ist, dass Nutzer oder Auftraggeber während der gesamten Entwicklung eingebunden bleiben.

Häufige Fragen

Verzichtet agile Entwicklung auf Pläne und Entwurfsdokumente?

Nein. Agile Entwicklung plant durchaus; statt zu Beginn jedes Detail festzulegen, überarbeitet sie den Plan in jeder Iteration. In Scrum wird beim Sprint Planning zu Beginn jedes Sprints entschieden, was in diesem Sprint gebaut wird. Benötigte Dokumente werden ebenfalls erstellt.

Was ist das Manifest für Agile Softwareentwicklung?

Eine Erklärung der Grundgedanken agiler Entwicklung, 2001 von einer Gruppe von Softwareentwicklern verfasst. Sie nennt vier Werte: Individuen und Interaktionen mehr als Prozesse und Werkzeuge, funktionierende Software mehr als umfassende Dokumentation, Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung und Reagieren auf Veränderung mehr als das Befolgen eines Plans. Sie ist so formuliert, dass die Dinge rechts zwar ihren Wert haben, die Dinge links aber höher geschätzt werden.

Wie unterscheiden sich Scrum und agile Entwicklung?

Agile Entwicklung ist ein Sammelbegriff für Ideen und Vorgehensweisen, die Software in kurzen Iterationen entwickeln und dabei auf Veränderungen reagieren. Scrum ist eines der typischen Rahmenwerke, um das in die Praxis umzusetzen; es legt drei Rollen fest (Product Owner, Scrum Master und Developers) sowie Ereignisse, die innerhalb von Sprints fester Länge von höchstens einem Monat stattfinden.

Werden Wasserfall und agil auch kombiniert?

Ja. Zum Beispiel werden die Gesamtanforderungen und der Grobentwurf zuerst festgelegt, und Implementierung und Test erfolgen danach in kurzen Iterationen. Auch innerhalb des Wasserfallmodells werden seit Langem Techniken eingesetzt, um Nacharbeit zu verringern, etwa Prototyping, um Anforderungen zu bestätigen, oder das Spiralmodell, das die Phasen mehrmals wiederholt.

Verständnis prüfen

Welche Aussage beschreibt ein Merkmal des Wasserfallmodells der Softwareentwicklung richtig?

  1. APhasen wie Anforderungsdefinition, Entwurf, Implementierung und Test werden von oben nach unten der Reihe nach durchlaufen, und grundsätzlich beginnt die nächste Phase erst, wenn die Arbeitsergebnisse der vorherigen Phase festgeschrieben sind
  2. BKurze Iterationen werden wiederholt, und jede liefert lauffähige Software und bezieht Rückmeldungen der Nutzer ein
  3. CZuerst wird ein Prototyp gebaut und den Nutzern gezeigt, um ihre Anforderungen zu bestätigen, bevor die eigentliche Entwicklung beginnt
Antwort und Erläuterung anzeigen

Antwort: A. Phasen wie Anforderungsdefinition, Entwurf, Implementierung und Test werden von oben nach unten der Reihe nach durchlaufen, und grundsätzlich beginnt die nächste Phase erst, wenn die Arbeitsergebnisse der vorherigen Phase festgeschrieben sind

Das Wasserfallmodell ist ein Entwicklungsmodell, in dem die Phasen in der Reihenfolge Anforderungsdefinition, Entwurf, Programmierung und Test durchlaufen werden, wie Wasser, das bergab fließt. Da die Arbeitsergebnisse jeder Phase durch Reviews festgeschrieben werden, lassen sich Planung und Fortschrittskontrolle leicht durchführen; ein Fehler in den Anforderungen, der erst in einer späteren Phase entdeckt wird, verursacht jedoch viel Nacharbeit. Es wird eingesetzt, wenn die Anforderungen klar sind und sich kaum ändern, oder wenn die Spezifikation früh gemeinsam mit der Hardware festgelegt werden muss. Rückmeldungen der Nutzer über Iterationen einzubeziehen, ist ein Merkmal iterativer Ansätze wie der agilen Entwicklung, und Anforderungen mit einem Prototyp zu bestätigen, ein Merkmal des Prototyping-Modells.

Welcher Test entspricht im V-Modell der Softwareentwicklung der Phase der Anforderungsdefinition und prüft, ob die dort festgelegten Inhalte erfüllt sind?

  1. AModultest
  2. BIntegrationstest
  3. CAbnahmetest
Antwort und Erläuterung anzeigen

Antwort: C. Abnahmetest

Das V-Modell ist ein Entwicklungsmodell, das links die Phasen anordnet, die von der Anforderungsdefinition über den Entwurf zur Implementierung absteigen, rechts die wieder aufsteigenden Testphasen, und jeweils die einander entsprechenden Phasen verbindet. Der Anforderungsdefinition entspricht der Abnahmetest (Betriebstest), und je detaillierter die Entwurfsphasen werden, desto mehr entsprechen ihnen der Reihe nach Systemtest, Integrationstest und Modultest. Die Zuordnung der mittleren Phasen unterscheidet sich je nach Organisation und Lehrbuch etwas, und manchmal wird auch der Systemtest der Anforderungsdefinition zugeordnet; einig ist man sich aber darin, dass der Abnahmetest, der die Anforderungen aus Sicht des Auftraggebers oder Nutzers prüft, der Anforderungsdefinition entspricht. Kern des Modells ist, Testpläne und Abnahmekriterien bereits zum Zeitpunkt der entsprechenden Entwurfsphase zu erstellen.

Welche Rolle ist in Scrum für Inhalt und Reihenfolge (Priorität) der Einträge im Product Backlog sowie für die Maximierung des Produktwerts verantwortlich?

  1. AScrum Master
  2. BProduct Owner
  3. CDevelopers (Entwickler)
Antwort und Erläuterung anzeigen

Antwort: B. Product Owner

Ein Scrum Team besteht aus drei Rollen: Product Owner, Scrum Master und Developers. Der Product Owner verwaltet das Product Backlog, die Liste dessen, was gebaut werden soll, entscheidet, welche Einträge zuerst umgesetzt werden, und ist für die Maximierung des Produktwerts verantwortlich. Der Scrum Master verbreitet die Arbeitsweise von Scrum in Team und Organisation und hilft, Hindernisse zu beseitigen. Die Developers sind die Personen, die in jedem Sprint ein lauffähiges Inkrement erstellen.

  1. Welches Scrum-Event findet am Ende eines Sprints statt, um den Stakeholdern das fertige Inkrement (das lauffähige Produkt) zu zeigen, Feedback einzuholen und die weitere Ausrichtung sowie das Product Backlog anzupassen?
  2. Wie heißt in agilen Entwicklungsmethoden wie Extreme Programming (XP) die Tätigkeit, die innere Struktur eines Programms so umzuordnen, dass es leichter zu verstehen und zu ändern ist, ohne sein von außen sichtbares Verhalten zu ändern?
  3. Welche Beschreibung trifft auf Continuous Integration (CI) zu?

Übungsfragen zu Softwareentwicklung und Projektmanagement

Wichtige Begriffe erklärt

Wasserfallmodell
Softwareentwicklungsmodell, in dem Phasen wie Anforderungsdefinition, Entwurf, Programmierung und Test von oben nach unten der Reihe nach durchlaufen werden und grundsätzlich die nächste Phase erst beginnt, wenn die Arbeitsergebnisse der vorherigen Phase festgeschrieben sind. Planung und Fortschritt lassen sich leicht steuern, doch ein erst in einer späteren Phase entdeckter Fehler in den Anforderungen verursacht viel Nacharbeit.
Agile Softwareentwicklung
Oberbegriff für Vorgehensweisen der Softwareentwicklung, die kurze Iterationen von einigen Wochen wiederholen, jedes Mal lauffähige Software liefern, Rückmeldungen der Nutzer einbeziehen und den Plan an sich ändernde Anforderungen anpassen. Zu den bekanntesten Methoden gehören Scrum und Extreme Programming (XP).
Scrum
Eines der bekanntesten Rahmenwerke der agilen Entwicklung. Mit drei Rollen, Product Owner, Scrum Master und Developers, und den Events innerhalb von Sprints fester Länge von höchstens einem Monat (Sprint Planning, Daily Scrum, Sprint Review und Sprint Retrospective) wird ein lauffähiges Produkt Stück für Stück gebaut.
V-Modell
Entwicklungsmodell, das die von der Anforderungsdefinition über den Entwurf zur Implementierung absteigenden Phasen und die vom Modultest zum Abnahmetest wieder aufsteigenden Testphasen in V-Form anordnet und beide Seiten paarweise verbindet, etwa Anforderungsdefinition mit Abnahmetest, Entwurf mit Integrations- und Systemtest sowie Modulentwurf mit Modultest. Welche Entwurfsphase welchem Test zugeordnet wird, unterscheidet sich je nach Organisation und Lehrbuch etwas.
Testgetriebene Entwicklung (TDD)
Vorgehensweise der Softwareentwicklung in einem kurzen, wiederholten Zyklus: zuerst einen Test für die zu bauende Funktion schreiben, dann den minimalen Code, mit dem der Test besteht, und schließlich refaktorisieren, wobei die Tests weiter bestehen. Sie verbreitete sich als Praktik des Extreme Programming (XP).
CI/CD (Continuous Integration und Continuous Delivery)
Zusammenfassende Bezeichnung für Continuous Integration (CI), bei der Entwickler ihre Änderungen häufig in einen gemeinsamen Branch zusammenführen und jede Zusammenführung einen Build und automatisierte Tests auslöst, und Continuous Delivery (CD), die getestete Änderungen jederzeit für die Auslieferung in die Produktion bereithält. Wird auch die Auslieferung selbst automatisiert, spricht man von Continuous Deployment.
WBS (Projektstrukturplan)
Baum, der die Arbeitsergebnisse eines Projekts und die dafür nötigen Arbeiten von der obersten Ebene nach unten zerlegt (Work Breakdown Structure). Die Elemente der untersten Ebene heißen Arbeitspakete und sind die Einheiten für Schätzung, Terminplanung, Zuweisung von Personen und Fortschrittskontrolle.

Verwandte Vergleiche