
kontaktiere uns


Wenn es um Softwareentwicklung geht, stellt sich immer diese Millionen-Dollar-Frage: Welche Methode soll verwendet werden, Waterfall oder Agile? Jeder hat eine Meinung dazu, und oft bedeutet die Bevorzugung einer Methode, die andere als gültige Option zu ignorieren. Waterfall stand an erster Stelle, Agile erschien erst vor Kurzem, aber wir sind weit davon entfernt, einen Konsens darüber zu erzielen, welche Methode besser zu den Entwicklungsanforderungen passt.
Ist Waterfall tot? Ist Agile definitiv an seine Stelle getreten? Ist einer besser als der andere?
Ausgehend von den Grundlagen werden wir den aktuellen Stand beider Methoden in der Softwareentwicklung erläutern und einige der häufigsten Fragen zu den einzelnen Methoden beantworten. Alles in allem wird auch erklärt, warum wir uns bei Imaginary Cloud in unserem Entwicklungsprozess für Agile statt Waterfall entschieden haben.
Das Wasserfall-Methodik wurde nach seinen aufeinanderfolgenden Phasen benannt, die nach unten angeordnet sind (ähnlich wie bei tatsächlichen Wasserfällen), die die verschiedenen Schritte der Softwareentwicklung von einem Ende zum anderen repräsentieren. Es wurde 1970 vom Informatiker Winston Walker Royce veröffentlicht und sah ursprünglich fünf verschiedene Phasen vor: Anforderungen, Entwurf, Implementierung, Überprüfung und Instandhaltung.
In den folgenden Jahrzehnten entstanden einige Variationen des ursprünglichen Modells, aber die Logik hinter Waterfall blieb dieselbe. Wenn eine Phase abgeschlossen ist, wird ihr Ausgang zur Eingabe für die nächste Phase, die unmittelbar nach der ersten beginnt. Es berücksichtigt alle wesentlichen Punkte, aus denen sich zusammensetzt Softwareentwicklung, und aufgrund seiner Einfachheit war es sehr leicht zu verstehen und sofort zu übernehmen.
Waterfall stellt sicher, dass jede Phase abgeschlossen ist, bevor mit der nächsten begonnen wird. Der Grund? Um zu vermeiden, dass mit der Entwicklung begonnen wird, bevor die Entwurfsarbeiten abgeschlossen sind, was zu möglichen Inkongruenzen an beiden Enden führen könnte. Darüber hinaus ist es anhand dieses Modells möglich, die Kosten und den Aufwand für das gesamte Projekt von Anfang an in der Anforderungsphase abzuschätzen.
Obwohl das Waterfall-Modell bei weitem nicht der einzig mögliche Ansatz für die Softwareentwicklung war, erlebte es erst 2001 einen grundlegenden Paradigmenwechsel. Was hat ihn verursacht? Agile Softwareentwicklung.
Die Prinzipien der inkrementellen Softwareentwicklung wurden bereits in verschiedenen verstreuten Prozessen angewendet. Dennoch war es erst 2001 mit der Manifest für agile Softwareentwicklung, dass agile Softwareentwicklung (wie wir wissen) eingeführt und populär gemacht wurde. Dieses sehr einfache Dokument, das von einer Gruppe von Entwicklern in Utah zusammengestellt wurde, hat sicherlich die Konventionen und Einschränkungen der Softwareentwicklung gebrochen und bietet eine echte Alternative zur Waterfall-Methode.
Oben steht ein perfektes Beispiel dafür, was Agile sein soll. Die verschiedenen Zyklen — konventionell benannt Sprints - versuchen, kumulativ einen Mehrwert zu bieten und Teil eines größeren Ganzen zu sein, das zum Projektabschluss führt. Darin unterscheidet sie sich am meisten von der Waterfall-Methode.
Agile ist bestrebt, flexibler zu sein, regelmäßige Inkremente zu ermöglichen und den Zeitaufwand für die Planung zu minimieren, indem es sich auf Folgendes konzentriert kürzere Timeboxes. Jede Iteration erhöht den Wert des Produkts und bietet am Ende eine funktionierende Software, bei der der nächste Schritt detaillierter geplant wird als die anderen, die folgen werden.
Verschiedene Untergruppen verwenden Agile als Philosophie, ähnlich wie bei den Varianten von Waterfall. DSDM (Dynamic Systems Development Method), FDD (Feature-Driven Development), XP (Extreme Programming) und, wahrscheinlich das beliebteste, Scrum, greifen bei der Ausführung von Softwareentwicklungsprozessen auf Agile zurück.
Unabhängig von unterschiedlichen Meinungen ist es eine Tatsache, dass Agile die Art und Weise verändert hat Softwareentwickler entschied über ihre Herangehensweise an neue Projekte. Was bedeutete das für Waterfall, zu wissen, wofür die einzelnen Methoden stehen?
Fast so viele Leute sagen, dass Waterfall tot ist wie diejenigen, die sagen, dass Agile ein unbedeutender Trend ist. Es ist nichts falsch daran, unterschiedliche Meinungen zu haben, aber lassen Sie uns hier zu den Fakten kommen:
Das Stack Overflow-Umfrage Das Bild oben zeigt, dass Agile zweifellos die erste Wahl für Softwareentwickler ist. Die beliebte Untergruppe Scrum ist nicht nur die erste Wahl, die von 85,4,9% der Community verwendet wird, sondern nimmt auch mit 62,7% den zweiten Platz ein. Weiter unten befindet sich Waterfall mit einer Nutzung von 15,1% auf dem sechsten Platz.
Auf den ersten Blick sieht es für Waterfall nicht gut aus. Wir können ganz klar sagen, dass Agile die beliebteste Methode ist, und es gibt keine Möglichkeit, gegen diese Zahlen zu argumentieren. Es ist jedoch ein Fehler, einen so hohen Prozentsatz an Entwicklern zu ignorieren, die Waterfall verwenden. Als Analogie würden wir nicht sagen, dass Huawei eine irrelevante Marke ist, da sie hinter Apple und Samsung nur 14,6% des Marktanteils in der Mobilfunkbranche hat.
Es ist jedoch eine Tatsache, dass Agil deckte einige Schwächen und Mängel des Wasserfallmodells auf, indem er darauf hinwies, wie schwierig es ist, Probleme in früheren Phasen zu beheben, und wie ein ganzer Prozess erforderlich ist, um eine funktionierende Software zu haben. All dies mit einer hohen Unsicherheit dazwischen.
Als sich die Botschaft verbreitete, wurde es cool, agil zu sein, jeder wollte ein Stück davon haben, und alle Prozesse wurden daraufhin agil. Niemand prahlt mit seinen Waterfall-Prozessen. Von Marketing und Wirtschaft bis hin zu Software Design und Entwicklung, jedes Unternehmen möchte, dass jeder weiß, dass es agil ist, auch wenn sie selbst nicht wissen, was das bedeutet. Das ist der Grund für den ganzen Trugschluss, der das Argument stützt, dass Waterfall jetzt irrelevant ist.
Jeder scheint das Wesentliche zu übersehen: Weder Waterfall ist tot noch Agile ist der allgemein Überlegene Methodologie für die Softwareentwicklung. Das eine dem anderen vorzuziehen, um besser zu werden, ist nur eine Illusion, die oft die Nichtexistenz eines richtigen Prozesses maskiert.
Waterfall ist definitiv die beste Wahl für stabile Projekte, da zunächst eine umfangreiche Planung durchgeführt wird, bei der alle Aspekte (sowohl interne als auch externe) berücksichtigt werden, die die Ausführung des Projekts beeinflussen können. Unabhängig von der Dimension des Projekts Wasserfall ist die am besten geeignete Wahl, wenn die externe Umgebung stabil und es ist unwahrscheinlich, dass sich Veränderungen ergeben während des gesamten Plans.
Für diese Art von Projekten war Waterfall der beste Ansatz, bevor Agile auf den Markt kam, und das ist auch heute noch so. Wenn Sie ein Projekt in einer Umgebung mit geringem Risiko im Voraus planen können, hat es keinen wirklichen Vorteil, es in mehrere Sprints aufzuteilen, um jede Woche einen Mehrwert zu erzielen. Es ist am besten, sich sofort auf das Endergebnis zu konzentrieren.
Alternativ Agil ist der richtige Weg für Projekte, die aufgrund ihres instabilen und unvorhersehbaren Charakters einen flexibleren Prozess erfordern. Mit anderen Worten, wenn sich die Produktvision und die jeweilige Produktvision aufgrund externer Faktoren (z. B. Marktdynamik usw.) ändern können, ist es besser, das Produkt mithilfe von Agile zu entwickeln und anzupassen. Es ist auch die beste Methode, um sicherzustellen, dass das Projekt nicht mehrere Monate in der Entwicklung bleibt, bevor ein Ergebnis präsentiert wird. Am Ende jedes Sprints wird es einen Checkpoint geben, an dem Produkteigentümer kann die abgeschlossene Arbeit testen und genehmigen.
In veränderbaren Projekten, die Waterfall verwenden, stellt das Fehlen geeigneter Checkpoints ein Risiko dar, da es schwieriger ist, mögliche Probleme zu beheben, die am Ende der Entwicklung gefunden werden. Die zusätzliche Zeit, die für die Planung des gesamten Projekts vorgesehen ist, gewährleistet nicht, dass die Entwurfs- und Entwicklungsphasen bis zum Ende reibungslos ablaufen, da die meisten Probleme ebenso unerwünscht wie unvorhersehbar sind.
Wählen Sie entweder Waterfall gegen Agile sollte mehr als nur ein Marketingschritt sein. Es sollte alle Aspekte berücksichtigen, die ein Projekt beeinflussen können und wie gut ein Produkt a priori definiert ist. Die Auswahl des falschen Tools für den Job kann zu zusätzlichen Zeit- und Arbeitskosten führen.
Jede Softwareentwicklungsherausforderung hat ihre Besonderheiten, und in der Regel ist die Anforderungsphase bei jeder Methode der Punkt, an dem die Karten auf den Tisch gelegt werden. Bevor Sie jedoch direkt in die Tat umsetzen, gibt es einige Fragen zur Art des Projekts, die Sie kennen sollten.
Methoden wie Waterfall und Agile existieren als verschiedene Ansätze zur Lösung von Variationen derselben Probleme. Je nach ihren Besonderheiten können mehrere Projekte besser entwickelt sein und sich besser mit dem einen oder anderen kombinieren lassen.
Alles in allem, warum bevorzugen wir Agile gegenüber Waterfall? Angesichts dessen, was wir bis jetzt gesehen haben, haben wir hoffentlich alle Erklärungen wie „Waterfall ist tot, lang lebe Agile“ hinter uns. In der Regel ist das eine nicht besser als das andere, und in den meisten Fällen ist es ein Fehler, anders zu denken. Wir haben Waterfall schon lange ausprobiert und sind auf Agile umgestiegen, als wir es — angesichts der Natur der meisten unserer Projekte — für die erste Wahl hielten.
In unserem Agiler Entwicklungsprozess, haben wir eine Scrum-Methode, eine Untergruppe von Agile, eingeführt und einige Anpassungen vorgenommen, um den spezifischen Bedürfnissen unserer Kunden gerecht zu werden. Wir sind der Meinung, dass dies die bessere Option für unsere Projekte ist, da wir sowohl die Möglichkeit in Betracht ziehen, sie mit einem MVP (Minimum Viable Product) abzuschließen — was in die Proof-of-Concept-Phase fallen würde — als auch eine Reihe von Sprints zu durchlaufen, die dem Produkt einen zusätzlichen Mehrwert verleihen.
Auch hier wäre es ein Fehler zu glauben, dass dies der bestmögliche Prozess ist, den wir in jedem Projekt anwenden können. Aus diesem Grund überprüfen wir ihn und passen ihn gegebenenfalls an unsere Bedürfnisse an. Das hat uns in erster Linie dazu veranlasst, von Waterfall zu Agile zu wechseln, und falls nötig, werden weitere Verbesserungen vorgenommen. Es geht jedoch niemals darum, universelle Lösungen zu schaffen, da ein solches Konzept niemals existieren wird Softwareentwicklung.
Es ist glasklar, dass Waterfall nicht tot ist und Agile per se nicht die beste Wahl ist. Das ist die einfachere Sichtweise und die gefährlichste Art, mit Softwareentwicklung umzugehen. Alles hängt von Ihren spezifischen Bedürfnissen ab und davon, wie Sie die gewünschten Ziele am besten erreichen können. Jede weitere Diskussion darüber erzeugt unnötigen Lärm.
Was in den letzten Jahren passiert ist, ist, dass Agilität als Vorteil angesehen wird. Ein bemerkenswertes Merkmal, mit dem ein Unternehmen in Verbindung gebracht werden kann und das sofort seine Qualität unter Beweis stellt. Es ist so, dass weder jeder agil ist, noch weiß niemand, was Agile ist. Dennoch macht es der ganze Trubel für jeden schwieriger, wirklich zu verstehen, wie Methoden aussehen Waterfall und Agile dreht sich alles um.
Der beste Weg, über das bloße Aussehen hinauszugehen und mit einem Softwareentwicklungsprozess tatsächlich etwas zu bewirken, besteht darin, die Bedürfnisse jedes Projekts wirklich zu verstehen, die Methode auszuwählen, die am besten zu ihm passt, und sich entsprechend anzupassen.
Content Manager, Texteditor und Moderator strategischer Ideen. Außerdem ist er ein begeisterter Fan der Filmkunst und des visuellen Geschichtenerzählens.
People who read this post, also found these interesting: