Die eben beschriebenen 5 Phasen beschreiben den theoretischen Ablauf des gesamten Projekts. Sobald man insbesondere die Phasen 2-4 anschaut (Planung, Durchführung und Überwachung), so fächern sich die möglichen Vorgehensweisen in einen ganzen Katalog von Entwicklungsmodellen auf, die den eben beschriebenen Phasen 2-4 teilweise nur noch wenig ähneln.

Die wichtigsten Modelle sind hier aufgeführt:

Wasserfallmodell

Das Wasserfallmodell ist eine der ältesten Vorgehensweisen in der Softwareentwicklung (wenn nicht gar die älteste, sie kommt aus den 1950ern). Der Grundgedanke ist, dass man linear 5 Entwicklungsphasen strikt in einer Richtung durchläuft und das Ergebnis der vorangegangenen Phase jeweils als verbindliche Vorgabe in der darauffolgenden Phase verwendet. Hintergrund ist, dass gerade in der Urzeit der Softwareentwicklung Aufgaben strikt getrennt waren und eine spätere Anpassung von Vorgaben einen Rattenschwanz an Änderung nach sich ziehen konnte. Nach dem ursprünglichen Modell dürfte man daher niemals wieder (etwa zur Korrektur) in eine vorangegangene Phase zurückkehren – in der Realität wurde das bereits nach wenigen Jahren nicht mehr so eng gesehen und so können die Stufen auch prinzipiell wieder rückwärts nach oben durchlaufen werden.

Vorteile des Modells:

Klare Abgrenzung der Phasen und dadurch gute Kontrolle

Gute Abschätzung von Kosten und Umfang

Nachteile des Modells:

Übergang zwischen den Phasen ist in der Realität häufig fließend.

Rückschritte zur vorangegangener Phase offiziell nicht vorgesehen

Zu frühes Festschreiben der Anforderungen führt zu Inflexibilität und kann massive Kosten nach sich ziehen.

Inkrementelle und iterative Modelle (Überbegriff für viele Modelle)

Die inkrementelle Entwicklung bedeutet, dass verschiedene Teile des Projekts unabhängig voneinander zu unterschiedlichen Zeiten entwickelt werden.

Iterative Entwicklung bedeutet hingegen, dass das Produkt während der Entwicklung regelmäßig überprüft und verbessert oder angepasst werden kann. Bezogen auf das Wasserfallmodell bedeutet das, dass von jeder Phase aus zu jeder anderen vorherigen Phase zurückgesprungen werden kann. Diese Iteration wird typischerweise durch das rechte Bild dargestellt.

Inkrementelle und iterative Entwicklung passen sehr gut zusammen und werden meist in Kombination verwendet. Das bedeutet, dass man das Projekt in kleinere Bestandteile zerlegt, die von verschiedenen Teams in unterschiedlicher Geschwindigkeit entwickelt werden können. Dabei wird stets zunächst die einfachste Lösung gesucht und diese schrittweise ausgebaut.

Agile Entwicklung

Die agile Entwicklung ist die heutzutage wohl verbreitetste Vorgehensweise! Sie gehört zu den inkrementellen und iterativen Modellen. Ihre Besonderheit ist, dass versucht wird, so schnell wie möglich einen lauffähigen ersten Prototypen zu besitzen um diesen schnellstmöglich dem Kunden zeigen zu können. Dadurch kann früh und flexibel auf Kundenwünsche eingegangen werden, denn häufig ändern sich Kundenwünsche auch ein wenig, wenn das Produkt das erste Mal zu sehen ist oder auch wenn mögliche zukünftige Probleme aufgezeigt werden können. Die Kundenzufriedenheit soll dadurch insgesamt erhöht werden.

Von den ehemals klassischen Ansätzen (siehe Wasserfallmodell) weicht dieses Modell recht stark ab, getreu dem Motto: Je mehr nach Plan gearbeitet wird, desto mehr bekommt man das, was geplant wurde, aber nicht das, was gebraucht wird. Die Realität sieht häufig so aus, dass die Kunden keine Fachleute sind und daher vor Beginn der Entwicklung wenig Verständnis haben (können), was realistisch machbar ist - genau an diesem Hebel greift die agile Methode an.

2001 wurden vier Leitsätze als Agiles Manifest formuliert:

Individuen und Interaktionen sind wichtiger als Prozesse und Werkzeuge

Funktionierende Software ist wichtiger als umfassende Dokumentationen

Zusammenarbeit mit dem Kunden ist wichtiger als Vertragsverhandlungen

Reagieren auf Veränderung ist wichtiger als das Befolgen eines Plans