it-swarm-eu.dev

Gibt es wichtige Alternativen zu Waterfall und Agile?

Ich bin neugierig, ob jemand Methoden kennt, die sich erheblich unterscheiden (keine Rekombination), und ich würde mich besonders über jeden freuen, der Erfahrungen mit Alternativen vorgebracht hat.

35

Wikipedia listet diese als Methoden/Entwicklungsprozesse :

  • Agile - basierend auf iterativer und inkrementeller Entwicklung, bei der sich Anforderungen und Lösungen durch die Zusammenarbeit zwischen selbstorganisierenden, funktionsübergreifenden Teams entwickeln .

  • Reinraum - Der Schwerpunkt des Reinraumprozesses liegt eher auf der Fehlervermeidung als auf der Fehlerbeseitigung.

  • Iterativ - ein zyklischer Softwareentwicklungsprozess, der als Reaktion auf die Schwächen des Wasserfallmodells entwickelt wurde. Es beginnt mit einer anfänglichen Planung und endet mit der Bereitstellung mit den dazwischen liegenden zyklischen Interaktionen.
    iterative diagram

  • RAD - verwendet minimale Planung zugunsten des Rapid Prototyping. Die "Planung" von Software, die mit RAD] entwickelt wurde, ist mit dem Schreiben der Software selbst verschachtelt.

  • RUP - Der Rational Unified Process (RUP) ist eine anpassbare iterative Softwareentwicklung Prozessrahmen, der durch Auswahl der geeigneten Elemente des Prozesses angepasst werden soll.

  • Spiral - Kombinieren von Elementen sowohl des Designs als auch des schrittweisen Prototyping, um die Vorteile von Top-Down und Top-Down zu kombinieren Bottom-up-Konzepte. Dieses Entwicklungsmodell kombiniert die Merkmale des Prototyping-Modells und des Wasserfallmodells.
    spiral model diagram

  • Wasserfall - sequentiell durch die Phasen Konzeption, Initiierung, Analyse, Design, Konstruktion, Test und Wartung.
    waterfall diagram

  • Lean - eine Übersetzung der Prinzipien und Praktiken von Lean Manufacturing und Lean IT in die Softwareentwicklungsdomäne; Alles, was dem Kunden keinen Mehrwert bringt, gilt als Verschwendung.

  • V-Modell - Anstatt sich linear nach unten zu bewegen, werden die Prozessschritte nach der Codierungsphase nach oben gebogen, um bilden die typische V-Form. Das V-Modell zeigt die Beziehungen zwischen jeder Phase des Entwicklungslebenszyklus und der damit verbundenen Testphase.
    v-model diagram

  • TDD - beruht auf der Wiederholung eines sehr kurzen Entwicklungszyklus: zuerst der Der Entwickler schreibt einen fehlgeschlagenen automatisierten Testfall, der eine gewünschte Verbesserung oder neue Funktion definiert, erstellt dann Code, um diesen Test zu bestehen, und überarbeitet den neuen Code schließlich auf akzeptable Standards.

49
Peter Boughton

Cowboy-Codierung

Reine unstrukturierte, nicht verwaltete Freiformentwicklung. Es kann für kleine Hobbyprojekte nützlich sein, denen eine Frist oder sogar ein klares Ziel fehlt, die aber in einem Unternehmen wahrscheinlich nicht funktionieren.

20
Bruce Alderman

Das Spiralmodell

Das Spiralmodell ist ein Softwareentwicklungsprozess, bei dem sowohl Design- als auch Prototyping-Elemente schrittweise kombiniert werden, um die Vorteile von Top-Down- und Bottom-Up-Konzepten zu kombinieren. Es wird auch als Spiral Lifecycle Model (oder Spiral Development) bezeichnet und ist eine Systementwicklungsmethode (SDM), die in der Informationstechnologie (IT) verwendet wird. Dieses Entwicklungsmodell kombiniert die Merkmale des Prototyping-Modells und des Wasserfallmodells. Das Spiralmodell ist für große, teure und komplizierte Projekte gedacht.

- Wikipedia alt text

4
Ryan Hayes

Planen

Setzen Sie sich mit dem Kunden (oder Endbenutzer) zusammen und entwerfen Sie eine Reihe von Anwendungsfällen.

Design

Legen Sie das System auf Papier/Whiteboard über ein paar Biere und Pizza. Kichern, wenn etwas phallisch aussieht.

Bestätigen

Bestätigen Sie das Design mit dem Client (oder Endbenutzer) und frieren Sie die Anforderungen ein.

Code

Selbsterklärend.

1
Josh K

Dieses Argument von Waterfall gibt es schon seit einiger Zeit und wird von den agilen Vordenkern schon früh verwendet. Auch sie begegneten der "Realität" des Wasserfalls als "roter Alarm".

Wenn Sie mit der Arbeit an einem Softwareentwicklungsprojekt beginnen, werden Sie schnell feststellen, dass die verwendete Entwicklungsmethodik eine wichtige Rolle für die Geschwindigkeit und Qualität des entwickelten Codes spielt. Da die agile Methodik so weit verbreitet ist, ist es wichtig, dass Sie die Vorteile verstehen und die Nachteile von Agilität, damit Sie feststellen können, ob es am besten zu Ihren Projektergebnissen passt.

Die agile Softwareentwicklung ist ein konzeptioneller Rahmen für die Durchführung von Softwareentwicklungsprojekten. Die meisten agilen Methoden versuchen, das Risiko zu minimieren, indem sie Software in kurzen Zeiträumen entwickeln, die als Iterationen bezeichnet werden und normalerweise ein bis vier Wochen dauern. Jede Iteration ist wie ein eigenes Miniatursoftwareprojekt und umfasst alle Aufgaben, die erforderlich sind, um das Mini-Inkrement neuer Funktionen freizugeben: Planung, Anforderungsanalyse, Design, Codierung, Test und Dokumentation.

Dies ist ein guter Prozess für das Unternehmen, da der Kunde in den Entwicklungsprozess einbezogen und für die Produktlieferung verantwortlich gemacht wird. Auf der anderen Seite sind Kunden glücklich, weil sie selbst an der Entwicklung des Produkts beteiligt sind.

Nachteile für Agile:

  • Agile ist zu programmiererorientiert, sodass unklar bleibt, wie die Arbeit in einem Unternehmen ausgeglichen werden kann.
  • Wenn Sie nicht wissen, wohin Sie gehen, bringt Sie Agile nicht dorthin!
  • Schaffung von Frameworks ohne klare Bedürfnisse.
  • Übermäßiger Gebrauch von Sprachfunktionen (unangemessen).
  • Keine Test-First-Mentalität.

Nun, eine interessante Methodik, die als Alternative für AGILE funktionieren könnte, kann am besten unter diesen 3 Links angesehen werden:

Kanban als alternative agile Implementierung

Kanban-Softwareentwicklung

Lean Softwareentwicklung in der Cloud

1
Tony