Ist die Waterfall-Softwareentwicklungsmethode noch praktikabel?

14

Nach meiner Erfahrung scheint sich das Waterfall-Modell als zu unflexibel erwiesen zu haben und nicht auf Änderungen der Anforderungen zu reagieren, um als praktikable Methode in der modernen Welt der Softwareentwicklung angesehen zu werden. Das Wachstum und die nachgewiesene Erfolgsbilanz agilerer, iterativer Methoden scheinen darauf hinzudeuten, dass es keinen Grund gibt, einen Prozess aus starren Blöcken zu befolgen, bei dem von Projektbeginn bis zur Produktlieferung nur geringe bis keine Änderungen zu erwarten sind.

Ist die Entwicklungsmethode für Wasserfälle für die Bereitstellung von Softwaresystemen in Bezug auf Zeit, Kosten und Qualität noch realisierbar?

CFL_Jeff
quelle
3
Also, wenn Sie es nicht erlebt haben und es nicht erleben wollen, ist es dann tot? Nicht, dass ich dafür plädiere, aber das scheint eine seltsame Voraussetzung zu sein.
Donnerstag,
9
Es ist nicht tot. Es ist einfach nicht die aktuelle Modeerscheinung / Trend / "akzeptabel"
Paul
2
@GrandmasterB Mit "tot" meinte ich "hinreichend erwiesenermaßen nicht der beste Weg"
CFL_Jeff
3
@Rachel Bitte lesen Sie das Software-Entwicklungs-Tag nicht weiter. Es ist ein Meta-Tag, das für zukünftige Aufräumarbeiten vorgesehen ist .
Thomas Owens
3
Es ist nicht tot, es ruht sich nur aus. Lust auf Fjorde. ;)
FrustratedWithFormsDesigner

Antworten:

20

Das Wasserfallmodell, auf das Sie sich beziehen, war niemals als Prozessmodell für ein reales Projekt gedacht. Stattdessen ist es ein Strohmann. Es identifiziert die wichtigsten Phasen und Aktivitäten, die in Softwareprojekten existieren, und den grundlegendsten Fluss zwischen diesen. Diese übermäßige Vereinfachung der Softwareentwicklung ist mangelhaft und wurde sogar so dargestellt.

Aus dem Wikipedia-Artikel:

Die erste formale Beschreibung des Wasserfallmodells wird häufig als Artikel von Winston W. Royce aus dem Jahr 1970 zitiert, obwohl Royce in diesem Artikel den Begriff "Wasserfall" nicht verwendet hat. Royce stellte dieses Modell als Beispiel für ein fehlerhaftes, nicht funktionierendes Modell vor.

Das besprochene Papier trägt den Titel Verwalten der Entwicklung großer Softwaresysteme . Darin präsentiert Royce dieses Modell auf der zweiten Seite. Der Text unmittelbar unter der bildlichen Darstellung lautet jedoch wie folgt:

Ich glaube an dieses Konzept, aber die oben beschriebene Implementierung ist riskant und führt zum Scheitern.

Anschließend geht er auf die Probleme beim Testen nach dem "Abschluss" der Entwicklungsphase ein und erläutert, inwiefern Fehler hier zu erheblichen Neugestaltungen und Codeänderungen führen können und wie dies zu erheblichen Kosten- und Zeitüberschreitungen führen kann. Während des gesamten Papiers verfeinert er das ursprüngliche Modell zu einem Modell, das für ein Projekt tatsächlich realisierbar ist. Am Ende steht ein Modell, das Prototyping, Kundeninteraktion und Verfeinerung von Artefakten einführt - Ideen, die schließlich für die agile Bewegung, die Ende der 1990er und Anfang der 2000er Jahre begann, von entscheidender Bedeutung sein würden.

Um Ihre Frage zu beantworten: Der Wasserfall, nach dem Sie fragen, war und ist keine praktikable Methode, um Softwareprojekte mit einem angemessenen Maß an Qualität in Bezug auf Zeit und Budget zu liefern. Es gibt jedoch andere plangetriebene Methoden, die agilen Methoden gegenüberstehen und die in Projekten funktionieren können.

Thomas Owens
quelle
Viele Artikel über Agile verwenden "traditionelle Methoden", um den Wasserfall zu erwähnen, und dieser implizite Wasserfall wurde im 20. Jahrhundert die ganze Zeit benutzt. Jetzt weiß ich, dass ich falsch liege.
Ming-Tang
@ThomasOwens Würde es Ihnen etwas ausmachen, ein paar davon zu zitieren other plan-driven methodologies that lie opposite of agile that can and do work on project?
Laiv
@Laiv Das Spiral-Modell ist in der Regel eher planorientiert als die agilen Ansätze - Sie planen und analysieren mehr, bevor Sie eine funktionierende Software entwickeln. Cap Gemini SDM ist ein weiteres Beispiel, obwohl spätere Überarbeitungen in einem Plan-Do-Check-Act-Zyklus hinzugefügt wurden, aber auch hier ist ein angemessenes Maß an Vorausplanung und Analyse in den Prozess integriert. Bei vielen handelt es sich wahrscheinlich um eine Variation eines Wasserfalls, in die jedoch eine Art Rückkopplungsschleife eingebaut ist. Wenn Sie ein starkes Domänenverständnis und relativ stabile Anforderungen haben, benötigen Sie möglicherweise nicht die engen Rückkopplungsschleifen der agilen Methoden und können besser planen.
Thomas Owens
9

Die Leute benutzen das Lehrbuch- Wasserfallmodell nicht und haben es wahrscheinlich auch nie.

Es ist ein idealisiertes, theoretisches Konstrukt, mit dem Sie über die Schritte in der Systementwicklung nachdenken können. Wichtig ist, dass größere Änderungen so früh wie möglich durchgeführt werden, da Sie weder Zeit noch Geld haben, um große Änderungen vorzunehmen, wenn viel Code erstellt wurde.

Trotz der Tatsache, dass es eher eine Denkweise als ein Prozess ist, gehen viele - wahrscheinlich die meisten Organisationen - beim Erstellen von Software (oder Häusern oder U-Booten oder was auch immer ...) vor.

In der realen Welt gibt es keine strengen Grenzwerte zwischen den Phasen, und manchmal kehren Sie bei kleinen Unterprojekten zu vorherigen Phasen zurück. Was die Methodik sagt, ist nicht, dass "diese Dinge nicht erlaubt sind". Was es Ihnen sagt, ist "diese Dinge kosten Sie Geld und / oder Zeit" - versuchen Sie also, dies in Zukunft zu vermeiden.

Für Agile Snobs (TM) ist es gut und schön, "altmodische" Entwickler und ihre kuriose, nicht praktikable Wasserfallmethode in den Hintergrund zu rücken. Tatsache ist jedoch, dass Agile auch kein Allheilmittel ist. Einige Projekte können nicht mit Agile erstellt werden, und viele Teams, die sich für Agile halten, sind nur schlampig und unorganisiert.

Die Methodik ist nicht der Punkt. Der Punkt ist, darüber nachzudenken, was Sie tun und warum Sie es so tun - und in kürzester angemessener Zeit den größtmöglichen Nutzen für den Kunden zu erzielen.

Joel Brown
quelle
Sie haben offensichtlich eine ganz andere Erfahrung mit "Menschen" gemacht als ich. In den letzten 30 Jahren habe ich in einer Reihe von Unternehmen gearbeitet, die alle die Lehrbuch-Wasserfall-Methode angewendet haben (und immer noch anwenden). Es ist nicht überraschend, dass es nicht funktioniert.
David Arno
@DavidArno Das, was ich in einem Softwarekontext dem Lehrbuch "Wasserfall" am nächsten gesehen habe, war eine Software für das Firmengebäude, die das Schalten von Zügen kontrollierte. Die Motivation dafür war, dass niemand buchstäblich an den Folgen eines Insekts starb. Ich stelle mir vor, dass dies auch an Stellen passieren könnte, an denen Embedded-Programmierung ausgeführt wird, ohne dass Sie eine Million von Dingen erstellen möchten, um herauszufinden, dass dies aufgrund eines Fehlers fehlschlägt. Ich neige dazu zu denken, dass Wasserfall auch in diesen Fällen eher ein Ideal als eine Übung ist, die mit Perfektion erreicht wird. Wie Sie betonen, sind die Ergebnisse auf einer bestimmten Ebene unvermeidlich gescheitert.
Joel Brown
8

Der mythische Wasserfallprozess, der am häufigsten mit Agilität verglichen wird, existierte nie und kann daher nicht als tot betrachtet werden. Echte Wasserfallprozesse sind noch immer lebendig und hervorragend, wenn es darum geht, kostengünstige Software pünktlich zu liefern, die die Erwartungen der Benutzer erfüllt.

Ryathal
quelle
5
Ich bin nicht sicher, was der Unterschied zwischen dem "mythischen" und dem "echten" Wasserfall ist. Würden Sie das bitte erklären?
CFL_Jeff
6
Oft ist der Wasserfall - Prozess von Agile Befürworter beschrieben ist ein strawman en.wikipedia.org/wiki/Straw_man
jfrankcarr
11
Dies wäre eine bessere Antwort, wenn Sie in Ihrer Antwort erläuterten, wie agile Befürworter einen Strohmann-Prozess erstellen, der nicht funktioniert, aber nicht richtig ist.
Robert Harvey
4
-1 für die Aussage: "Sie können hervorragend liefern ..." Die Wahrheit ist, dass es eine Wäsche ist. Wie bei allen Softwaremethoden funktioniert es manchmal, manchmal nicht. Ich habe beides bei der echten Wasserfallmethode gesehen.
Riwalk
2
Ich werde zu dieser Antwort sagen müssen. Und -1 bis es zur Verfügung gestellt wird. Vor allem die "Hervorragende Leistung bei der termingerechten Bereitstellung von kostengünstiger Software, die den Erwartungen der Benutzer entspricht". Der CHAOS-Bericht ist nicht mit Ihnen einverstanden.
Malfist
5

Vielleicht ist eine bessere Möglichkeit zu fragen, worauf Sie hinaus wollen: "Wann ist weniger iterativ und formeller besser?"

Es gibt Situationen, in denen dies der Fall ist:

  • Wenn sich die Anforderungen nicht ändern.

  • Wenn es weniger wichtig ist, neue Anforderungen zu erfüllen, als 100% der ursprünglichen Anforderungen zu erfüllen.

  • Wenn alle technologischen Komponenten ausgereift und gut verstanden sind.

In gewissem Sinne können Sie das Gegenteil von dem annehmen, was Sie zu Agilität antreibt.

Überall sind nur sehr wenige Techniken anwendbar. Sehr wenige haben keinen Sinn.

MathAttack
quelle
1
Was in aller Welt ist "lessnitwrative" oder "morenformal"?
Aaronaught
1
@Aaronaught - "weniger iterativ" und "formeller" durch fette Daumen auf einem iPhone. :-)
MathAttack
1
Ich habe noch nie in einem Projekt gearbeitet, das auch nur eine dieser Voraussetzungen erfüllt hat. :)
Theodor
3

Ja, es ist sehr lebendig, obwohl es heute das üblichere " V-Modell " ist, das verwendet wird.

In beiden Fällen besteht das Problem von Agile darin, dass die Lösung fast nie endet, der Kunde weiterhin Änderungen anfordern kann und die Entwicklung sie weiterhin iterativ beheben wird. Für ein Projekt, das auf Zeit- und Materialkosten basiert, funktioniert dies sehr gut. Bei einem Projekt mit festen Kosten ist dies nicht der Fall.

Bei diesen Fixkostenprojekten erwartet der Kunde fast immer, dass vordefinierte Meilensteine ​​den Fortschritt belegen. Dabei handelt es sich jedoch eher um die formale Schrift als um den Arbeitscode. Für Kunden wie diese werden die schriftlichen Spezifikationen zum Projekt, bei dem die Softwareentwicklung eine untergeordnete Rolle spielt (da davon ausgegangen wird, dass die Software bei einem genau definierten Projekt einfach zu entwickeln sein sollte). Diese Unternehmen sind auch diejenigen, die in hohem Maße billige, ausgelagerte Entwicklungsressourcen in Anspruch nehmen.

Wenn Sie also über einen festen Betrag oder eine feste Zeit verfügen, nicht erwarten, dass sich die Anforderungen ändern, oder keine Anforderungen ändern dürfen, und eine umfassende schriftliche Dokumentation vorlegen müssen, sind die Wasserfallmodelle die einzigen, die dies tun Sinn ergeben.

Agile kann in der Mitte dieser Projekte eingeführt werden, um die Entwicklung durchzuführen. Sie haben jedoch noch eine Hochlaufphase, in der die Spezifikationen aus den Anforderungen erstellt werden, und eine Herunterlaufphase, in der die Software vor Ort installiert und getestet wird. Agile reagiert auf diese Fälle nicht gut.

gbjbaanb
quelle
Agile kann sehr gut mit einem festen Topf Geld oder Zeit arbeiten, vorausgesetzt, der Umfang ist nicht ebenfalls festgelegt. Der andere Punkt ist, dass der Kunde / Auftragnehmer den Vertragstyp (T & M, Fixkosten oder etwas dazwischen) so auswählen kann , dass er mit einer bestimmten Entwicklungsmethode (Agilität oder Wasserfall) vereinbar ist - er ist nicht vorbestimmt.
DNA
1

Zu wem? Die meisten Manager, mit denen ich mich befasst habe, verwenden immer noch den Waterfall Software Dev Process für die Planung, und höhere Ebenen scheinen ihn zu mögen, um die Planung zu vereinfachen.

In der Praxis glauben nur sehr wenige Entwickler, dass es funktioniert oder sogar gültig ist.

jwernerny
quelle