Projektmanagement in der Softwareentwicklung: Wasserfallmodell vs Agile

Projektmanagement in der Softwareentwicklung: Wasserfallmodell vs Agile

Den gesamten Entwicklungsprozess und die Entwicklungsmethode vor Beginn planen oder einzelne Entscheidungen einfach dann treffen, wenn sie notwendig werden?

 

Eine Entscheidung, die bereits zu Beginn der Anwendungsentwicklung notwendig wird, ist das Auswählen des passenden Entwicklungsvorgehens. Das Wasserfallmodell oder das Modell der agilen Entwicklung sind zwei der meist genutzten Vorgehen. Trotz der unterschiedlichen Modelle, vermischen die meisten Firmen beide Vorgehen im laufenden Entwicklungsprozess. Grundsätzlich ist das nicht als falsch anzusehen. Es ist sogar sehr effektiv beiden Vorgehen das Beste zu entnehmen und mit einer individuellen hybriden Variante, welche das Wasserfallmodell und auch das Modell der agilen Entwicklung beinhaltet, zu arbeiten. Hierbei kann diese Hybridmethode perfekt auf das Team und Projekt angepasst werden. Dennoch ist es notwendig, über beide Vorgehensweisen ausreichend informiert zu sein und auch die Vor- und Nachteile zu kennen, damit eine bessere Grundlage geschaffen wird, eine Entscheidung diesbezüglich zu treffen.

 

Um diese Grundlage zu schaffen, werden im Folgenden beide Methoden einzeln beschrieben und deren Für und Wider betrachtet. Dies soll dazu dienen, eine fundierte Entscheidung hinsichtlich der Entwicklungsmethode für aktuell anstehende Projekte treffen zu können.

 

Die Wasserfallmethode

Grundsätzlich lässt sich die Wasserfallmethode als ein lineares, sequenzielles Modell beschreiben, bei dem die einzelnen Aufgaben und Ereignisse einem klar vordefinierten Plan folgen. Der Entwicklungsprozess nach dieser Methode folgt vordefinierten  Phasen. Begonnen wird hierbei mit der Konzeption und der Analyse der Anforderungen. Danach wird das entsprechende Design ausgewählt. Nach der Umsetzung des Designs im Rahmen der Entwicklung folgt eine Testphase. Nach dieser Testphase kann die Anwendung aktiv eingesetzt werden und tritt somit in die Wartungsphase ein. Jede Phase ist hier einzeln für sich anzusehen. Dies bedeutet, dass zum Beispiel das Design vor der Implementation vollständig abgeschlossen sein muss, bevor die Anwendung in die Phase der Umsetzung bzw. der Entwicklung übergeht. Die einzelnen Phasen überschneiden sich somit nicht und das gesamte Vorgehen folgt einer fest vorgegebenen Zeitschiene.

 

Agile Vorgehensweise

Die agile Vorgehensweise ist eine tendenziell eher iterative Methode für das Application Lifecycle Management. Hierbei wird zu Beginn der Entwicklung darauf verzichtet, alles genau zu planen und entsprechend dieses Planes umzusetzen. Stattdessen ist der agile Prozess eher flexibel. Der Hauptfokus liegt hierbei darauf, den Prozess schlank zu halten und kleine Teilprojekte zu realisieren. Diese werden MVPs (minimum viable product) genannt. Die MVPs selbst durchlaufen eine gewisse Anzahl an Iterationen bevor sie als final und abgeschlossen angesehen werden. Durch diese Herangehensweise können verschiedene Phasen des Entwicklungszyklus zeitgleich bearbeitet werden. Ebenfalls ermöglicht das agile Vorgehen eine einfachere Implementierung von Änderungen während des aktiven Entwicklungsprozesses. Der Hauptfokus liegt dabei auf der Zusammenarbeit der einzelnen Teams. Es wird dazu während des laufenden Projekts kontinuierlich Feedback gesammelt und umgesetzt. Insgesamt ist das agile Vorgehen ein dynamischerer Prozess, bei dem alle Teams zusammen auf ein gemeinsames Ziel hinarbeiten.

 

Vorteile der Wasserfallmethode

  • Klare Stichtage: Der größte Vorteil der Wasserfallmethode ist der feste, zeitgebundene Plan, der direkt zu Beginn des Projektes festgelegt wird. Es sind für jede Phase der Entwicklung klare Stichtage festgelegt, welche es den einzelnen Teams ermöglichen im Zeitplan zu bleiben, sodass alle Phasen ohne Probleme ineinander übergehen können.
  • Sorgfältige Dokumentation: Der sehr gut dokumentierte Prozess ist einer der vorteilhaftesten Aspekte der Wasserfallmethode. Neben der Analyse und der Sammlung der Projektanforderungen, wird jeder Teilschritt des Prozesses genau dokumentiert, sodass das Projekt im Gesamten gut nachvollziehbar ist.
  • Organisation: Jegliche Übergabedokumente oder Teilprojekte sind im Rahmen des Wasserfallmodells genau definiert und organisiert. Jedes Team ist sich seiner Aufgaben, Verantwortlichkeiten und der jeweiligen Ziele bewusst
  • Klare Erwartungshaltung: Die Kunden wissen genau, welches Ergebnis oder Teilergebnis sie in welcher Phase der Entwicklung zu erwarten haben. Dies sorgt für emhr Zufriedenheit und sichert das  Vertrauen seitens der Kunden.

 Nachteile der Wasserfallmethode

  • Schwierigkeit der Änderungen: Im Wasserfallmodell ist jeder Schritt als final anzusehen. Sind die Anforderungen analysiert, wird diese Phase geschlossen und das Projekt geht in die Designphase über, sodass es nun schwierig ist hinsichtlich der Anforderungen weitere Details zu erhalten oder gewisse Dinge klarzustellen. Ist die Übergabe des Designs an die Umsetzung abgeschlossen, bestehen nur geringe Möglichkeiten Änderungen am Design vorzunehmen, ohne die Entwicklung stark zu beeinflussen. Dies macht es im gesamten Verlauf des Wasserfallmodells schwierig Änderungen umzusetzen oder auf veränderte Anforderungen und Erwartungen zu reagieren.
  • Fehlende Zusammenarbeit: Einer der größten Nachteile der Wasserfallmethode ist der geringe Anteil an Zusammenarbeit über die Teamgrenzen hinweg. Vor dem Eintritt in die Entwicklungsphase gibt es nur drei bis vier Schritte. Ist die Phase der Entwicklung erreicht und die Entwickler benötigen mehr Informationen zu den Anforderungen oder eine Feinanpassung im Design, so ist im Rahmen des Wasserfallmodells kaum (zeitlicher) Spielraum dafür.
  • Späte erste Ergebnisse: Wie bereits erwähnt, durchläuft das Projekt vor dem Eintritt in die Entwicklung drei bis vier Phasen. In diesen Phasen ist es unmöglich die ersten – selbst kleinen – Teilergebnisse den Stakeholdern oder dem Kunden zu präsentieren. Dies ist erst in der Entwicklungsphase möglich.
  • Zu späte, möglicherweise riskante Testphase: Nachdem die Testphase erst sehr spät im Projektverlauf ansteht, kann es dazu kommen, dass bereits zu viel auf dem Spiel steht und gefundene Probleme in deren Behebung sehr kostspielig sind. Auch durch den zuvor schon langwierigen Entwicklungsprozess und die fortgeschrittene Projektdauer wird die Phase des Testens oft übergangen oder nur spärlich durchgeführt, um Projekte zeitgerecht zu beenden.
  • Frühe, möglicherweise unzureichende Anforderungsanalyse: Zu Beginn des Projektes kann es durchaus vorkommen, dass Stakeholder und Kunden sich noch nicht zu 100% sicher sind, was sie sich genau vorstellen. Sie formulieren möglicherweise zu Beginn Informationen und Anforderungen, welche sich mit einer Weiterentwicklung der Idee ebenfalls verändern können. Im Wasserfallmodell ist es schwierig neue Ideen und neue Erwartungen zu berücksichtigen und zu implementieren. Die Anforderungsanalyse als allerersten Schritt im Prozess durchzuführen erscheint somit schwierig.

Vorteile der agilen Methode

  • Kollaborativer, teambasierter Ansatz: Die agile Methode basiert darauf, dass die verschiedenen involvierten Teams gemeinsam und vor Allem zeitgleich am Projekt arbeiten. Das sichert einen effektiven Austausch zwischen den Teams und einen deutlich anpassungsfähigeren Prozess. Es können hier die gesammelten Informationen und Anforderungen zeitgleich durch die Designer und Entwickler eingesehen werden, sodass eine Kommunikation untereinander ermöglicht wird und beide parallel arbeiten können.
  • Iterativ und flexibel: Der agile Prozess ermöglicht das schnelle Rollout von Prototypen, sodass zu diesen bereits in einem frühen Entwicklungsstand Feedback seitens der Teams gegeben werden kann.  Bei einem „Low-Fidelity-Prototypen“ können Änderungen schnell umgesetzt werden. Somit werden große und teure Änderungen vermieden. Die Stakeholder und Kunden können sich ebenfalls schnell und unkompliziert in das Projekt einklinken und ihre Ideen und Änderungswünsche direkt äußern, was im Umkehrschluss  spätere Unzufriedenheit vermeidet.
  • Größerer Mehrwert für das Unternehmen : Anstatt an einem frühen (möglicherweise unausgereiften) Geschäftsplan festzuhalten , ermöglicht es der agile Prozess, dass die Idee sich weiterentwickelt und wächst. Während die Anwendung nun wächst, kann der Kunde bestimmte Merkmale priorisieren, womit dann der Marktwert der Anwendung gesteigert werden kann.
  • Besseres und schnelleres Testen: Durch den iterativen Charakter der agilen Entwicklung, werden fast simultan die Softwaretests durchgeführt. Dadurch können Fehler schneller erkannt und behoben werden. Dies vermeidet teure Nachbesserungen  im späteren Verlauf.

Nachteile der agilen Methode

  • Schwierig zu kontrollieren: Der ungeplante und freie Projektablauf im Rahmen einer agilen Methode kann bei schlechtem Projektmanagement zu schlechten Ergebnissen führen. Ein Beispiel hierfür wäre, dass sich die Teams im Kreis drehen und die Deadlines  ohne erkennbare und verwertbare Ergebnisse vergehen.
  • Unklarer Umfang des Projektes: Eine Schwierigkeit ist die Definition klarer (Teil-) Projektumfänge, sodass es passieren kann, dass sich die Teams um die jeweilige Verantwortung drücken.
  • Permanentes Testen: Die zugewiesenen Tester müssen für die gesamte Projektdauer zur Verfügung stehen um das permanente Testen zu gewährleisten. Dies kann zu einer zusätzlichen finanziellen Belastung führen.

Schlussfolgerung

Wie beschrieben, haben sowohl die agile als auch die Wasserfallmethode ihre Vor- und Nachteile. Die Entscheidung, welche der beiden Herangehensweisen passend ist, hängt stark von den Projektanforderungen und auch von der Arbeitsweise des bzw. der Teams ab. Man sollte sich jedoch nicht davon abschrecken lassen, beide Methoden in Erwägung zu ziehen. Die Verschiedenheit beider Methoden kann genutzt werden, um eine individuelle Lösung als Mischung der beiden zu kreieren. Die Idee hierbei ist jedoch, dass man zu Beginn eine Methode. So kann man beispielweise die klar definierte Phasenstruktur des Wasserfallmodells auswählen, jedoch iteratives Testen während des gesamten Projektes durchführen.
Wichtig ist, dass man sich genug Zeit nimmt, die Anforderungen an das Projekt zu reflektieren und anhand dieser Reflektion seine Entscheidung hinsichtlich der Methode(n) trifft.

 

 

Post a Comment