Ich bin gespannt, ob jemand Methoden kennt, die sich erheblich unterscheiden (keine Rekombination), und ich würde mich besonders über jeden freuen, der Erfahrungen mit Alternativen gemacht hat.
quelle
Ich bin gespannt, ob jemand Methoden kennt, die sich erheblich unterscheiden (keine Rekombination), und ich würde mich besonders über jeden freuen, der Erfahrungen mit Alternativen gemacht hat.
Wikipedia listet diese als Methoden / Entwicklungsprozesse auf :
Agil - basierend auf iterativer und inkrementeller Entwicklung, bei der sich Anforderungen und Lösungen durch die Zusammenarbeit von sich selbst organisierenden, funktionsübergreifenden Teams entwickeln.
Reinraum - Der Schwerpunkt des Reinraumprozesses liegt auf der Vermeidung von Fehlern und nicht auf der Beseitigung von Fehlern.
Iterativ - ein zyklischer Softwareentwicklungsprozess, der als Reaktion auf die Schwächen des Wasserfallmodells entwickelt wurde. Es beginnt mit einer ersten Planung und endet mit der Bereitstellung mit den zyklischen Interaktionen dazwischen.
RAD - verwendet minimale Planung zugunsten von Rapid Prototyping. Die "Planung" von mit RAD entwickelter Software ist mit dem Schreiben der Software selbst verbunden.
RUP - Der Rational Unified Process (RUP) ist ein anpassbares Framework für iterative Softwareentwicklungsprozesse, das durch Auswahl der geeigneten Prozesselemente angepasst werden soll.
Spirale - Kombination von Elementen aus Design und Prototyping in Schritten, um die Vorteile von Top-Down- und Bottom-Up-Konzepten zu kombinieren. Dieses Entwicklungsmodell kombiniert die Merkmale des Prototyping-Modells und des Wasserfall-Modells.
Wasserfall - sequentiell durch die Phasen Konzeption, Initiierung, Analyse, Design, Konstruktion, Prüfung und Wartung.
Lean - eine Übersetzung von Lean Manufacturing- und Lean IT-Prinzipien und -Praktiken 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 die typische V-Form zu bilden. Das V-Modell zeigt die Beziehungen zwischen jeder Phase des Entwicklungslebenszyklus und der zugehörigen Testphase.
TDD - setzt auf die Wiederholung eines sehr kurzen Entwicklungszyklus: Zuerst schreibt der Entwickler 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.
Cowboy-Codierung
Reine unstrukturierte, nicht verwaltete Freiform-Entwicklung. Es kann für kleine Hobbyprojekte nützlich sein, bei denen eine Frist oder sogar ein klares Ziel fehlt, die jedoch in einem Unternehmensumfeld wahrscheinlich nicht funktionieren.
quelle
Das Spiralmodell
Das Spiralmodell ist ein Softwareentwicklungsprozess, bei dem Elemente aus Design und Prototyping in Schritten kombiniert werden, um die Vorteile von Top-Down- und Bottom-Up-Konzepten zu kombinieren. Es wird auch als Spiral-Lifecycle-Modell (oder Spiral-Entwicklung) bezeichnet und ist eine in der Informationstechnologie (IT) verwendete Methode zur Systementwicklung (SDM). Dieses Entwicklungsmodell kombiniert die Merkmale des Prototyping-Modells und des Wasserfall-Modells. Das Spiralmodell ist für große, teure und komplizierte Projekte gedacht.
- Wikipedia
quelle
Planen
Setzen Sie sich mit dem Kunden (oder Endbenutzer) zusammen und entwerfen Sie eine Reihe von Anwendungsfällen.
Design
Planen Sie das System auf Papier / Whiteboard mit ein paar Bieren und Pizza. Kichere, wenn etwas phallisch aussieht.
Bestätigen
Bestätigen Sie das Design mit dem Kunden (oder dem Endbenutzer) und lassen Sie die Anforderungen einfrieren.
Code
Selbsterklärend.
quelle
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 "Alarmstufe Rot".
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 Agile, damit Sie feststellen können, ob es für Ihre Projektergebnisse am besten geeignet ist.
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 Zeitrahmen, so genannten Iterationen, entwickeln, die in der Regel ein bis vier Wochen dauern. Jede Iteration ist wie ein eigenes Miniatur-Softwareprojekt 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 die Kunden glücklich, weil sie sich selbst an der Entwicklung des Produkts beteiligen.
Nachteile für Agile:
Gut für 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
Schlanke Softwareentwicklung in der Cloud
quelle