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?
development-methodologies
waterfall
CFL_Jeff
quelle
quelle
Antworten:
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:
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:
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.
quelle
other plan-driven methodologies that lie opposite of agile that can and do work on project
?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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle