Was ist der Hauptunterschied zwischen adaptivem Lebenszyklusmodell und iterativem/inkrementellem Modell?

Ich habe Probleme, einen wichtigen Unterschied zwischen adaptivem Modell und iterativem oder inkrementellem Modell zu finden.

Gemäß dieser Definition - https://www.oreilly.com/library/view/effektives-projektmanagement/9781118016190/ch011-sec045.html

[...] Jede Iteration in den adaptiven Modellen muss sich nicht nur mit der Aufgabenerfüllung für neu definierte Funktionen und Features befassen, sondern auch mit der weiteren Lösungsdefinition durch Funktions- und Feature-Erkennung

Der Entdeckungsteil soll der Hauptunterschied sein, aber ist es das? Ich meine, es ist ziemlich natürlich, dass Leute, wenn sie an etwas arbeiten, mehr und mehr über das Produkt und die Problemdomäne erfahren, also verstehe ich nicht, warum das ein wesentlicher Unterschied ist. Mein Punkt ist, dass ich nicht sehe, wie iterativen oder inkrementellen Modellen der Entdeckungsteil fehlt, der angeblich das "neue Merkmal" des adaptiven Modells ist. Meiner Meinung nach besteht das gesamte Ziel des inkrementellen und iterativen Ansatzes darin, alle Projektaktivitäten mehrmals zu wiederholen, damit Sie sich anpassen können, während Sie einen Teil des Produkts liefern, sodass ich keine neue Methodik sehe, die vom adaptiven Modell kommt. Was vermisse ich?

Ich glaube, um eine fundierte Antwort zu haben, muss man verstehen, wie sich dieses Problem auf Ihre Arbeit auswirkt. In welchem ​​Kontext wurde der Unterschied zwischen adaptiv und iterativ angesprochen? Bezieht es sich auf Praktiken, die Ihnen jemand empfohlen hat? Versuchen Sie, verschiedene Arbeitsmodelle zu verstehen? Die Terminologie ist wirklich nützlich, wenn sie genügend Kontext hat, sonst kann sie nur zu Verwirrung führen.

Antworten (2)

TL;DR

Sie haben einige Konzepte vermischt.

Wie Stanislav geschrieben hat; es gibt zwei Ansätze .

Vorausschauend und adaptiv

Innerhalb von Adaptive finden Sie möglicherweise sowohl inkrementelle als auch iterative, die sich voneinander unterscheiden.

Es ist jedoch sehr wahrscheinlich , dass Incremental auch innerhalb von Vorhersagemodellen zu finden ist.

Wie soll das gehen?

Inkremente sind vordefinierte Funktionspakete, die auf dem vorherigen Inkrement aufbauen. Sie sind geplant und Teil einer größeren Architektur.

Wir werden VISA hinzufügen, dann Mastercard, dann PayPal, dann...

Schließlich machen sie etwas Größeres.

Wir können also ein Vorhersagemodell haben, das eine inkrementelle Lieferung hat.

Eine Iteration ist ein definiertes Arbeitspaket, das auf Feedback reagiert und die Architektur/Organisation/den Service in völlig unbekannte Richtungen führen kann, weil es sinnvoll ist, einen Benutzer zufrieden zu stellen .

Wir werden den Benutzern erlauben, eine Zahlungsart zu verwenden, und dann die Benutzer fragen, welche Zahlungsarten fehlen, und dies im Einklang mit der Marktforschung analysieren ...

Wir können ein adaptives Modell haben, das eine Iteration haben kann und dabei auch das Produkt oder die Dienstleistung inkrementiert.

Letztendlich macht Iteration etwas besser, nicht unbedingt größer. Wir können es komplett ändern.

Breitere Aufschlüsselung

Inkrementell

Als Analogie bauen wir moderne Brücken mithilfe eines Vorhersagemodells inkrementell .

Wir konzipieren die Brücke auf Machbarkeit, dann bauen wir ein Modell, aber entscheidend ist, dass wir, sobald die vollständige Lieferung beginnt, jeweils einen Abschnitt einer Brücke hinzufügen, bis Sie eine Brücke haben .

So was.

Geben Sie hier die Bildbeschreibung ein

Ein inkrementeller Ansatz in der Softwareentwicklung ist derselbe. Sie bauen Abschnitt für Abschnitt oder Komponente für Komponente oder Feature für Feature, bis Ihre (zu Beginn weitgehend definierte) Vision vollständig ist.

Iterativ

Ein adaptives Modell , das einen iterativen Ansatz verwendet, betrachtet ein Hindernis und denkt nach

wie könnten wir das rüberbringen?

Sie können mit einem einfachen Pfad an beiden Ufern beginnen und durch das Wasser waten. Benutzer sind unzufrieden und es funktioniert nicht im Winter. Ein Benutzer kann darum bitten, Waren zu transportieren, also iterieren Sie ein Design, das eine kleine Gondelfähre enthält.

Ein anderer Benutzer erklärt, dass er die Möglichkeit haben muss, rückwärts zu fahren, während ein anderer Benutzer vorwärts fährt, sodass Sie die Fähre durch eine Holzbrücke ersetzen.

Autos werden erfunden und Sie müssen auf die Gewichtskapazität reagieren, damit Sie die Brücke stärken, aber der Sedimentfluss im Wasser diktiert, dass Holz nicht mehr geeignet ist, also entscheiden Sie sich, die Brücke zu schließen und sie mit modernen Techniken wieder aufzubauen.

Aus finanziellen Gründen müssen Sie eine Maut erheben, aber der Verkehr nimmt ab, sodass Sie nur mit Mautgebühren für eine Richtung reagieren....

Sie haben zu keinem Zeitpunkt mit der Entscheidung begonnen, dass eine Mautstellenbrücke aus Beton mit drei Pylonen die Lösung wäre . Sie haben damit begonnen, ein Kundenproblem zu lösen, bei dem es darum ging, von einer Seite zur anderen zu gelangen.

Sie iterierten zu der am besten geeigneten Lösung, die Kunden, Stakeholder, Marktbedingungen, Technologie und Ihr eigener Einfallsreichtum zulassen würden.

Andere Überlegungen

  • Beide Techniken können Pläne haben oder nicht, und diese Pläne können effektiv sein oder nicht
  • Iteration erfordert eine Verpflichtung, auf Änderungen zu reagieren, selbst wenn diese Änderung sehr spät im Build erfolgt (das kann für Entwickler schwer zu ertragen sein, es bedeutet, glücklich zu sein, dass Sie es nicht vollständig erstellt haben, anstatt unglücklich zu sein, dass Ihre Arbeit verschwendet wurde).
  • Inkrementelles Design erfordert nicht so viel Reaktion auf Änderungen, da Sie theoretisch alle Ihre Inkremente im Voraus planen können, je nachdem, wie sicher Sie sind
  • Späte Änderungen an einem inkrementellen Design können schädlich sein, wenn die Architektur die Änderungen nicht aufnehmen kann
  • Ein großes Produkt oder eine große Dienstleistung kann eine Mischung aus inkrementellem UND iterativem Design haben (z. B. kann eine Komponente oder Funktion innerhalb eines größeren inkrementellen Designs iteriert werden).
  • Iterative Ideen sind für Agile von entscheidender Bedeutung, aber Sie können sowohl inkrementieren als auch iterieren, ohne das breitere Agile Manifest oder ein bestimmtes Framework zu abonnieren.

Historische Begründung

Um die Genese des inkrementellen Designs zu kennen, muss man schließlich die Datenverarbeitung verstehen.

In den 60er bis 80er Jahren waren Produktionsumgebungen sehr teuer und der Zugang zur Produktion wurde in die Warteschlange gestellt. Dies bedeutete wiederum, dass das Testen teuer und auch in der Warteschlange war.

Die Auswirkung war also, dass ein potenzieller Fehler in Ihrem Design sehr kostspielig war. Es war sinnvoll, so viele Anforderungen wie möglich im Voraus zu sammeln und zu versuchen, diese Anforderungen in Zusammenarbeit mit einem Kunden zu beheben (oder eine Baseline zu erstellen ), bevor Sie jemals eine Codezeile festgeschrieben haben. Die Baseline würde kommuniziert und jeder würde erwarten, dass sie geliefert wird.

Der Nachteil war, dass das Ändern der Baseline eine Genehmigung erforderte und nicht jeder dazu befugt war und die Governance involviert wäre ...

In der modernen Ära können wir buchstäblich Testressourcen und höhere Umgebungen für ein paar Cent hochfahren. Wir können Probleme schnell lösen und es gibt wahrscheinlich Frameworks oder Pakete, die wir von der Community übernehmen können.

Die Strafe für einen Fehler in der modernen Softwareentwicklung ist viel geringer, sodass wir uns die Freiheit nehmen können, Dinge schnell zu entwickeln und das Feedback der Benutzer bestimmen zu lassen, was wir als nächstes tun. Reparieren wir A oder verbessern wir B oder fügen C hinzu oder machen D leistungsstärker usw.

Es gibt jedoch immer noch Organisationen, die damit zu kämpfen haben (aus verschiedenen Gründen), und das Agile Manifest war ein Versuch, eine größere Fähigkeit zu fördern, schnell auf Feedback zu reagieren .

Ab 2021 haben wir nun Hunderte von dokumentierten Mustern dafür, wie wir auf Feedback reagieren und Iterationen in einen Workflow integrieren.

Einige Muster verlassen sich darauf, dass das Management zustimmt, die Macht an das Entwicklungsteam abzugeben.

In dieser Hinsicht kann die Iteration aufgrund einer Vielzahl von kreativen, kulturellen, organisatorischen oder Wissensbarrieren scheitern.

MVP-Nachtrag

Das Minimum Viable Product ist eng mit der Iteration verbunden, aber es ist ein weithin missverstandenes Konzept im Engineering und innerhalb von Agile. Vor allem, weil die meisten agilen Praktiker wenig Erfahrung mit Startups haben; die meisten arbeiteten in skalierten Organisationen.

Es ist am besten, Ihr Lernen über Iteration von MVP zu trennen, aber sobald Sie bereit sind, können Sie das MVP-Konzept verstehen, indem Sie die Blogs von Marty Cagan sorgfältig lesen.

Hallo , anscheinend widersetzen Sie sich Ansätzen zu Modellen.

Es gibt prädiktive und adaptive Ansätze.

Predictive zB Waterfall und Adaptive ist wie Agile.

Adaptive SDLC-Ansätze haben also eine Mischung aus inkrementeller und iterativer Entwicklung.

Hier finden Sie weitere Informationen.

Was meinen Sie mit "gegensätzlichen Ansätzen zu Modellen"?