Agil vs. Wasserfall: Ansätze für die Entwicklung von Softwareprodukten
Die Vorgehensweise bei der Softwareentwicklung entscheidet über den Erfolg der Projektdurchführung.
Agile und Waterfall-Methoden sind die populärsten. Dabei ist zu beachten, dass diese Methoden recht ausgereift und in der Praxis erprobt sind. Im Allgemeinen kombinieren die besten Unternehmen für kundenspezifische Softwareentwicklung diese Methoden, um Projekte durchzuführen. Und obwohl sie gemeinsame Merkmale haben, sind die Ansätze im Allgemeinen grundlegend verschieden.
Außerdem sind sie in der Praxis selten in ihrer reinen Form anzutreffen. Was der Unterschied zwischen Agile und Waterfall ist und worauf man bei der Wahl einer Softwareentwicklungsmethodik achten sollte, beschreiben wir im Folgenden.
Agile Methodik: Hauptmerkmale
Das agile System vereint Ideen und Prinzipien für ein flexibles Management des Projektentwicklungsprozesses. Die Methodik wurde vor relativ kurzer Zeit in den USA entwickelt. Sie wurde von 17 IT-Spezialisten entwickelt, die 12 Prinzipien dieser Methode ausgearbeitet haben, die sich wie folgt zusammenfassen lassen:
- Prozesse und Werkzeuge sind weniger wichtig als Menschen, ihre Interaktion und Kommunikation.
- Ein funktionierendes Produkt ist wertvoller als eine Dokumentation, die alles, auch die kleinsten Details, enthält (wobei wir bei SDH auch die Dokumentation nicht vernachlässigen).
- Langfristige Zusammenarbeit mit dem Kunden ist viel effizienter als die vereinbarten Vertragsbedingungen.
- Einem geplanten Algorithmus zu folgen ist nicht immer richtig, wenn es die Möglichkeit gibt, sich zu ändern und an neue Gegebenheiten anzupassen.
Betrachten wir die Agile Methodik aus praktischer Sicht, so findet bei diesem Ansatz die Softwareentwicklung in Form von Iterationen statt, das heißt, es wird während des gesamten Prozesses getestet. Ein iterativer und teamorientierter Ansatz zur Softwareentwicklung zielt darauf ab, die Kommunikation zwischen Kunden, Entwicklern und Testern zu stärken.
Was ist der Sinn? Anstatt Zeitpläne und Aufgaben zu erstellen, wird die gesamte Entwicklungszeit in mehrere Phasen - Sprints - unterteilt, die mehrere Wochen dauern. Jeder Sprint endet mit einer Bewertung der Ergebnisse, die das Team gemäß der geplanten Aktionsliste erreichen sollte. Die agile Methodik wird im Wesentlichen durch die Beteiligung des Kunden am Prozess bestimmt.
In der SDH-Firma halten wir in der Regel nach jedem Sprint eine Demo für den Kunden ab und erhalten Feedback.
Vorteile:
- Da der gesamte Prozess kundenorientiert ist, ist die Beteiligung des Kunden in allen Phasen gewährleistet;
- Eine qualitativ hochwertige Entwicklung ist garantiert;
- Der Kunde kann die Ergebnisse in einem Zwischenstadium einsehen und somit Anpassungen vornehmen;
- Das Gefühl der Beteiligung der Kunden verbindet und zieht sie in die Arbeit hinein;
- Dieser Ansatz ermöglicht es, eine Grundversion des Produkts zu erstellen, die in den nachfolgenden Iterationen verwendet werden kann. Sie ist unverzichtbar bei Projekten, bei denen die Zeit bis zur Markteinführung wirklich entscheidend ist;
- Ein höheres Maß an Motivation und Organisation der agilen Teams wird erreicht;
- Die Zahl der Ablehnungen ist geringer, weil der Schwerpunkt auf einem schrittweisen, vom Kunden kontrollierten Fortschritt liegt;
Gleichzeitig gibt es aber auch Nachteile der Agilen Methodik:
- Ein Projekt kann scheitern, wenn das Vertrauen in das Produkt fehlt;
- Es kann sein, dass man für eine wichtige Entscheidung eine Expertenbewertung benötigt;
- Die Methode eignet sich nicht für kleine Projekte (z.B. Visitenkarten und Landing Pages);
- Die voraussichtliche Dauer des Entwicklungsprojekts kann sich verlängern, wenn in jedem Sprint neue Ideen hinzukommen und damit der Arbeitsumfang für das MVP erheblich erweitert wird.
Agile Produktentwicklung kann gerade wegen ihrer Flexibilität nie das endgültige Ziel erreichen. Außerdem müssen die Spezialisten selbst hoch qualifiziert und erfahren sein, die Ergebnisse analysieren und nach alternativen Wegen suchen können. Schließlich ist die Berechnung des endgültigen Arbeitsaufwands manchmal schwierig. Daher eignet sich dieser Ansatz zum Beispiel für die Entwicklung betriebswirtschaftlicher Programme.
"Bei der Umsetzung dieses Ansatzes versuchen wir in der Regel, uns mit dem Kunden auf die wichtigsten Funktionalitäten zu einigen, die in der Startphase des MVP-Projekts eingeführt werden sollen, um sie dann unter Berücksichtigung des Feedbacks der Nutzer weiterzuentwickeln."
- Marina Fomenko, Head of PM bei Software Development Hub, teilt ihre Erfahrungen.
Was die Wasserfall-Methodik ist
Das "Wasserfall"-Modell in der Softwareentwicklung ist ein Klassiker. Es ist das totale Gegenteil der flexiblen Agile-Methode mit ihrem ständigen Testen und Verbessern der Ergebnisse. Die Wasserfall-Methodik basiert auf einem schrittweisen, systematischen Prozess, der in Phasen unterteilt ist. Außerdem kann man erst dann zur nächsten Stufe übergehen, wenn man die Aufgaben der vorherigen Stufe abgeschlossen hat. Der Begründer des Modells, Winston Walker Royce, legte 1985 sechs Phasen der Softwareentwicklung fest:
- Dokumentierte System- und Softwareanforderungen werden entwickelt.
- Die Analyse wird in Diagrammen verankert und Geschäftsregeln werden definiert.
- Das Design wird erstellt. In dieser Phase werden die interne Architektur, die Möglichkeiten zur Umsetzung der Anforderungen, die Schnittstelle und die strukturelle Logik entwickelt.
- Die Codierung wird durchgeführt.
- Endgültige Produkttests und Fehlerbehebungen werden durchgeführt.
- Produktanpassung an Betriebssysteme wird durchgeführt.
Vorteile von Wasserfall:
- Die Beteiligung des Kunden ist in allen Phasen optional;
- Die Fähigkeit der Teammitglieder, sich auf unterschiedliche Aufgaben zu konzentrieren, bleibt erhalten;
- Die Ergebnisse der einzelnen Phasen werden getrennt und können leicht überprüft werden;
- Eine einfache Anpassung für andere Teams ist gewährleistet;
- Die Planung wird durch die Koordinierung der Phasen im Voraus vereinfacht;
- Zu Beginn ist der volle Umfang der zu erledigenden Aufgaben bekannt, so dass die Ergebnisse leicht zu bewerten sind;
- Durch die Planung zu Beginn ist es für den Kunden weniger wahrscheinlich, dass er am Ende ein Teilergebnis sieht;
- Es wird eine klare Dokumentation des Prozesses und der Ergebnisse erstellt.
Die Stabilität der Aufgaben, das komfortable Berichtswesen und die Übersichtlichkeit der Kosten machen die Methodik für die Entwicklung kleiner Projekte mit Overheadbedarf akzeptabel.
Zu den Nachteilen zählen folgende:
- Der Mangel an Flexibilität macht es unmöglich, zusätzliche Zeit oder Finanzmittel für die Lösung eines Problems bereitzustellen, das während der Entwicklung aufgetreten ist. So muss man oft in der Testphase Kosten einsparen.
- Unmöglichkeit, während der Arbeit Änderungen vorzunehmen;
- Selbst wenn die prognostizierten Kosten steigen, wird es nicht möglich sein, die Kosten zu optimieren oder die Funktionalität anzupassen;
- Das Testen des fertigen Produkts und nicht einzelner Komponenten verringert die Effizienz des Prozesses.
Diese Unzulänglichkeiten werden in den auf Basis von Waterfall erstellten Modellen berücksichtigt und korrigiert: Wasserfall-Sashimi mit stapelbaren Phasen, Wasserfall mit Teilprojekten, etc.
Die Wahl eines Entwicklungsansatzes sollte nicht nur auf den offensichtlichen Vor- und Nachteilen eines jeden Ansatzes basieren, sondern auch auf der Erfahrung des Unternehmens, der Beteiligung des Kunden am Projekt usw.
Bei SDH gibt es ein bewährtes, ausgewogenes Modell für mehrere Projekte. Der Kunde weiß, dass das Team eine bestimmte Iteration entsprechend der beschriebenen Aufgabe durchführt (was dem Wasserfallmodell eigen ist). Und er kann sicher sein, dass das Team bei dringenden Änderungen der Umstände seine Anfrage nicht ablehnt und direkt in der laufenden Iteration Änderungen vornimmt (was für Agile charakteristisch ist).
Categories
Share
Benötigen Sie einen Projektkostenvoranschlag?
Schreiben Sie uns, und wir bieten Ihnen eine qualifizierte Beratung.