Spiralmodell: Das Modell für Risikomanagement in der Softwareentwicklung
Die Entwicklung neuer Software stellt alle Beteiligten vor eine große Herausforderung. Je komplexer die zu entwickelnde Anwendung ist, desto schwerer fällt es, den Entwicklungsprozess übersichtlich zu gestalten und in seiner Komplexität beherrschbar zu machen. Aus diesem Grund stützt man sich für gewöhnlich auf spezielle Schritt-für-Schritt-Pläne, die auch als Vorgehensmodelle bezeichnet werden. Diese unterteilen den gesamten Entwicklungsprozess in mehrere überschaubare Phasen, die zeitlich und inhaltlich begrenzt sind. Eines der bekanntesten Modelle, das insbesondere auf die Reduzierung von Risiken ausgerichtet ist, ist das sogenannte Spiralmodell aus dem Jahr 1986.
Was ist das Spiralmodell?
Nachdem Barry W. Boehm 1986 erstmals sein Konzept für die Entwicklung komplexer Anwendungen vorgestellt hatte, veröffentlichte der amerikanische Softwareingenieur 1988 sein Modell in der Publikation A Spiral Model of Software Development and Enhancement auch in einem umfassenderen Rahmen. In der Veröffentlichung beschreibt er das Spiralmodell als eine mögliche Alternative zu dem bis dato etablierten Wasserfallmodell, das gleichzeitig auch als Erfahrungsgrundlage diente. Anders als im Wasserfallmodell geht man im Spiralmodell nicht davon aus, dass die Aufgaben der Softwareentwicklung linear gestaltet sind – sondern begreift sie als iterative Aufgaben. Die Phasen werden im Spiralmodell also nicht einmalig Schritt für Schritt, sondern mehrfach spiralförmig durchlaufen. Durch diese zyklische Wiederholung nähert sich das Projekt zwar vergleichsweise langsam den gesetzten Zielen an, allerdings wird im Gegenzug das Risiko eines gescheiterten Entwicklungsprozesses durch regelmäßige Kontrollen entscheidend minimiert.
Das Spiralmodell ist ein von Barry W. Boehm entwickeltes Vorgehensmodell zur Softwareentwicklung aus dem Jahr 1986. Es geht davon aus, dass es sich bei der Entwicklung von Anwendungen um einen iterativen Zyklus handelt, der so oft durchlaufen wird, bis das gesteckte Ziel erreicht ist. Durch regelmäßiges Abschätzen von Risiken sowie regelmäßige Kontrollen des Zwischenprodukts minimiert das Spiralmodell das Risiko eines Misserfolgs bei großen Softwareprojekten erheblich.
Spiralmodell-Erklärung: Wie funktioniert das Spiralmodell?
Probleme im Rahmen des Entwicklungsprozesses können ganz unterschiedliche Auswirkungen auf das Gesamtprojekt haben. Mit steigenden Kosten, Mehraufwand und einem verspäteten Release ist in jedem Fall zu rechnen – Faktoren, die insbesondere für kleinere Firmen schnell zu einem Existenzproblem werden können. Mit seinem inkrementellen, iterativen Ansatz – der auch die regelmäßige Risikobetrachtung in Form von Prototyp-Entwürfen, Analysen oder Simulationen vorsieht – soll das Spiralmodell derartige Szenarien verhindern oder zumindest deren negativen Folgen abschwächen. Das Softwareprojekt durchläuft dabei kontinuierlich bis zum finalen Status den Spiralmodell-Zyklus, der grundsätzlich folgende vier Schritte umfasst:
Phase 1: Definition von Zielen und Alternativen sowie Beschreibung der Rahmenbedingungen
Ein typischer Zyklus im Spiralmodell startet mit der Überlegung, welche Zielvorgaben mit den einzelnen Schritten der Softwareentwicklung verbunden sein sollen. Dabei kann es sich beispielsweise um die Verbesserung der Performance oder um den Ausbau der Funktionalität handeln. Gleichzeitig gilt es, Alternativen für die Umsetzung zu definieren (beispielsweise Design A vs. Design B) und die Rahmenbedingungen sowie Kosten oder Zeitaufwand zu bestimmen.
Phase 2: Bewertung der Alternativen
Im nächsten Schritt folgt die Evaluation der Alternativen, wobei Zielvorgabe und Rahmenbedingungen als entscheidende Bezugsgrößen dienen. In dieser Phase des Spiralmodell-Zyklus sollen Unsicherheitsbereiche identifiziert werden, die für den Fortschritt des Softwareprojekts ein signifikantes Risiko darstellen. Anschließend soll die Ausarbeitung der risikoärmsten und kosteneffizientesten Strategie erfolgen, wobei Methoden wie Prototyping, Simulationen, Benchmark-Tests, Analysemodelle, Nutzerbefragungen zur Anwendung kommen können.
Phase 3: Entwicklung und Überprüfung des Zwischenstands
Im Anschluss an die Risikoanalyse geht es mit der eigentlichen Entwicklung der Software weiter, wobei diese Phase immer auch durch die relativen Restrisiken geprägt ist. Sollten beispielsweise Leistungs- oder Benutzeroberflächen-Risiken oder Risiken der internen Schnittstellenkontrolle den Entwicklungsprozess sehr stark dominieren, bietet sich zunächst eine evolutionäre Entwicklungsstrategie an, bei der das Projekt genauer spezifiziert und Prototypen optimiert werden. Der eigentliche Code wird dabei mehrmals geschrieben und getestet, bis das gewünschte Resultat erreicht ist, das dann als risikoarme Basis für weitere Entwicklungsschritte dient.
Phase 4: Planung des nächsten Zyklus
Mit dem Abschluss eines Zyklus startet bereits die Planung des nächsten Zyklus. Dabei kann es sich einerseits um die reguläre Fortsetzung des Projekts handeln, wenn die Zielvorgabe eines Zyklus erfüllt werden konnte und die Definition des nächsten Ziels ansteht. Andererseits kann es aber auch darum gehen, Lösungen zu finden, falls der vorangehende Entwicklungsschritt fehlerhaft verlief. So kann die bisherige Strategie zum Beispiel durch eine der bereits vorab definierten Alternativen oder eine neue Alternative ersetzt werden. Mit dieser kann man dann einen neuen Versuch starten, das vorgegebene Ziel zu erreichen.
Das Spiralmodell (Softwareentwicklung) ist ein generisches Vorgehensmodell. Die vier Phasen geben lediglich die grundlegenden Ziele eines Zyklus vor, müssen sich aber nicht in jeder Umrundung widerspiegeln. Auch ihre Reihenfolge ist im Grunde genommen nicht strikt durch das Spiralmodell vorgegeben. Aus diesem Grund lässt sich das Modell jederzeit mit anderen Vorgehensmethoden kombinieren.
Grafische Abbildung des Spiralmodells nach Boehm
Teil der Publikation aus dem Jahre 1988 ist unter anderem auch eine grafische Darstellung des Spiralmodells, die exemplarisch aufzeigt, wie der spiralförmige, zyklusgestützte Prozess der Softwareentwicklung aussieht. Jede Windung der Spirale verkörpert in dieser Skizze einen abgeschlossenen Zyklus, wobei immer der Reihe nach vier verschiedene Quadranten passiert werden, die in diesem Fall für die vier möglichen Phasen des Modells stehen. Mit zunehmender Größe der Spirale steigen der erzielte Fortschritt sowie auch die Zustimmung durch Überprüfung (X-Achse) und die Entwicklungskosten (Y-Achse).
Vor- und Nachteile des Spiralmodells für die Softwareentwicklung
Softwareentwicklung nach dem Spiralmodell ist vor allem bei großen, komplexen Projekten beliebt, bei denen die Kontrolle des Budgets für Auftraggeber und Entwicklerfirmen einen besonders hohen Stellenwert hat. Alle Beteiligten profitieren in diesem Fall von der zentralen Rolle der Risikoanalyse, die den wohl größten Vorteil des Spiralmodells gegenüber anderen Vorgehensmodellen darstellt. Die regelmäßige Beurteilung der Risiken zahlt sich insbesondere dann aus, wenn neuartige technische Umgebungen zum Einsatz kommen, die im Regelfall aufgrund der fehlenden Erfahrungswerte mit einem besonderen Risikopotenzial verknüpft sind.
Auch der zyklische Aufbau zählt zu den großen Stärken des Modells: Konflikte zwischen dem Design und den technischen Anforderungen, die an die Software gestellt werden, sind dank der regelmäßigen Kontrollen so gut wie ausgeschlossen. Zudem ist das Einholen und Berücksichtigen von Feedback aufgrund des spiralförmigen Fortschritts jederzeit möglich. Auf diese Weise lassen sich sowohl Auftraggeber als auch Anwender bereits von Beginn an in den Entwicklungsprozess einbinden. Voraussetzung, um diese Vorzüge genießen zu können, ist aber ein sehr aktives und aufwendiges Management des Projekts, bei dem die einzelnen Zyklen kontinuierlich und sorgfältig kontrolliert und dokumentiert werden.
Dass die vielen kleinen Schritte bei der Softwareentwicklung nach dem Spiralmodell aber nicht immer vorteilhaft sind, beweist die Tatsache, dass es – trotz vielseitiger Tests – nicht selten vorkommt, dass unfertige Programmteile ihren Weg in das Produktivsystem finden. In der Konsequenz besteht immer die Gefahr, dass etwaige Fehler oder konzeptionelle Schwächen auch in das Endprodukt gelangen. Zudem kann es jederzeit zu zeitlichen Verzögerungen bei der Entwicklung kommen, wenn innerhalb eines Zyklus bzw. bei der Planung des nachfolgenden Zyklus wichtige Entscheidungen getroffen werden müssen, die das weitere Vorgehen betreffen.
Nachfolgend die Vor- und Nachteile des Spiralmodells im tabellarischen Überblick:
Vorteile | Nachteile |
---|---|
flexibles, generisches Modell | hoher Managementaufwand |
frühe Einbindung von Auftraggebern und Anwendern möglich | regelmäßige Entscheidungen können den Entwicklungsprozess verzögern |
periodische, risikogetriebene Überprüfung | Durch den aufgegliederten Entwicklungsprozess gelangen Fehler und konzeptionelle Ungereimtheiten leicht in das Endprodukt |
perfekte Abstimmung zwischen technischen Anforderungen und Design | Know-how in Risikoanalyse bzw. -management essenziell, aber oft nicht vorhanden |
maximale Kontrolle über Kosten, Ressourcen und Qualität des Softwareprojekts | für kleinere Projekte mit überschaubarem Risiko ungeeignet |
gut für neuartige technische Umgebungen geeignet |