it-swarm.com.de

Unterschied zwischen agiler und iterativer und inkrementeller Entwicklung

Was ist der Unterschied zwischen agiler und iterativer und inkrementeller Entwicklung? Wird Agile als iterativ und inkrementell angesehen? Einige Informationen zeigen, dass der Agile der neueste iterative und inkrementelle ist. Ich brauche eine klare Klarstellung.

40
Sonia Yunni
  • Iterativ - Sie beenden ein Feature nicht auf einmal. Sie befinden sich in einem Code >> Feedback erhalten >> Code >> ... Zyklus. Sie iterieren weiter, bis Sie fertig sind.
  • Inkrementell - Sie bauen so viel, wie Sie gerade brauchen. Sie überentwickeln oder erhöhen die Flexibilität nur, wenn der Bedarf nachgewiesen ist. Wenn Bedarf besteht, bauen Sie auf dem auf, was bereits vorhanden ist. (Hinweis: unterscheidet sich von iterativ, indem Sie neue Dinge hinzufügen .. vs etwas verfeinern).
  • Agile - Sie sind agil, wenn Sie die gleichen Werte wie in das agile Manifest schätzen. Dies bedeutet auch, dass es keine Standardvorlage, Checkliste oder -prozedur für "Agile" gibt. Es gibt keine Überspezifikation. Es besagt nur, dass Sie alle Methoden anwenden können, die Sie benötigen, um "agil" zu sein. Scrum, XP, Kanban sind einige der am besten geeigneten Methoden, da sie dieselben Werte haben. Kontinuierliches und frühzeitiges Feedback, häufige Veröffentlichungen/Demos, Weiterentwicklung des Designs usw. Daher können sie iterativ und inkrementell sein.
48
Gishu

Inkrementelle Entwicklung bedeutet, dass verschiedene Teile eines Softwareprojekts kontinuierlich in das Ganze integriert werden, anstatt eines monolithischen Ansatzes, bei dem alle verschiedenen Teile zu einem oder mehreren Meilensteinen des Projekts zusammengefügt werden.

Iterativ bedeutet, dass eine erste Version einer Komponente, sobald sie vollständig ist, getestet, überprüft und die Ergebnisse fast sofort in eine neue Version (Iteration) dieser Komponente umgewandelt werden.

Als erstes Ergebnis: Die iterative Entwicklung muss nicht inkrementell sein und umgekehrt, aber diese Methoden passen gut zusammen.

Die agile Entwicklung zielt darauf ab, den massiven Planungsaufwand in Softwareprojekten zu reduzieren, damit sich schnelle Reaktionen ändern können, z. auf kundenwunsch. Inkrementelle und iterative Entwicklung sind fast immer Teil einer agilen Entwicklungsstrategie. Es gibt verschiedene Ansätze für die agile Entwicklung (z. B. Scrum).

9
Sheba

Einige wichtige und erfolgreich ausgeführte Softwareprojekte wie Google Chrome und Mozilla Firefox sind gute Beispiele für iterative und inkrementelle Softwareentwicklung.

Ich werde einen guten Artikel von ars technica zitieren, der diesen Ansatz beschreibt: http://arstechnica.com/information-technology/2010/07/chrome-team-sets-six-week-cadence-for-new-major-) Versionen /

Laut Chrome Anthony Laforge, Programmmanager von Chrome) soll das gesteigerte Tempo drei Hauptziele ansprechen: Zum einen sollen neue Funktionen schneller für die Nutzer bereitgestellt werden. Zum anderen soll der Release-Zeitplan vorhersehbar und damit einfacher werden Um zu planen, welche Funktionen enthalten sein werden und welche für spätere Releases vorgesehen sind, ist es am drittesten und intuitivsten, den Stress für Chrome= Entwickler zu verringern. Laforge erklärt, dass die kürzeren, vorhersehbaren Die Zeiträume zwischen den Releases sind eher wie "Züge, die die Grand Central Station verlassen". Neue Funktionen, die bereits verfügbar sind, müssen nicht auf andere warten, deren Fertigstellung länger dauert Entlasten Sie die Entwickler von Rush, um weitere Funktionen zu implementieren, da in sechs Wochen ein weiterer Release-Zug auf den Markt kommen wird

0
jjpcondor

Bei der iterativen Entwicklung müssen die üblichen Schritte des Wasserfallmodells im Laufe der Produktlebensdauer überprüft werden. Die Stufen können sich sogar überlappen, d. H. Sie können bereits beim Durchführen von End-to-End-Tests neue Anforderungen vorbereiten.

Inkrementelle Entwicklung bedeutet, dass Sie eine Roadmap für Ihre Funktionen erstellen und diese schrittweise implementieren.

Agile zielt darauf ab, nach jedem Sprint ein "potenziell versandfähiges Produkt" zu schaffen. Wie Sie es erreichen, ist eine andere Geschichte. Agile versucht, "beste" Techniken aus verschiedenen Bereichen einzusetzen (z. B. extreme Programmierung). Agile schließt weder eine inkrementelle noch eine iterative Entwicklung aus.

0
Roman Saveljev