Die Ent­wick­lung neuer Software stellt alle Be­tei­lig­ten vor eine große Her­aus­for­de­rung. Je komplexer die zu ent­wi­ckeln­de Anwendung ist, desto schwerer fällt es, den Ent­wick­lungs­pro­zess über­sicht­lich zu gestalten und in seiner Kom­ple­xi­tät be­herrsch­bar zu machen. Aus diesem Grund stützt man sich für ge­wöhn­lich auf spezielle Schritt-für-Schritt-Pläne, die auch als Vor­ge­hens­mo­del­le be­zeich­net werden. Diese un­ter­tei­len den gesamten Ent­wick­lungs­pro­zess in mehrere über­schau­ba­re Phasen, die zeitlich und in­halt­lich begrenzt sind. Eines der be­kann­tes­ten Modelle, das ins­be­son­de­re auf die Re­du­zie­rung von Risiken aus­ge­rich­tet ist, ist das so­ge­nann­te Spi­ral­mo­dell aus dem Jahr 1986.

Was ist das Spi­ral­mo­dell?

Nachdem Barry W. Boehm 1986 erstmals sein Konzept für die Ent­wick­lung komplexer An­wen­dun­gen vor­ge­stellt hatte, ver­öf­fent­lich­te der ame­ri­ka­ni­sche Soft­ware­inge­nieur 1988 sein Modell in der Pu­bli­ka­ti­on A Spiral Model of Software De­ve­lo­p­ment and Enhance­ment auch in einem um­fas­sen­de­ren Rahmen. In der Ver­öf­fent­li­chung be­schreibt er das Spi­ral­mo­dell als eine mögliche Al­ter­na­ti­ve zu dem bis dato eta­blier­ten Was­ser­fall­mo­dell, das gleich­zei­tig auch als Er­fah­rungs­grund­la­ge diente. Anders als im Was­ser­fall­mo­dell geht man im Spi­ral­mo­dell nicht davon aus, dass die Aufgaben der Soft­ware­ent­wick­lung linear gestaltet sind – sondern begreift sie als iterative Aufgaben. Die Phasen werden im Spi­ral­mo­dell also nicht einmalig Schritt für Schritt, sondern mehrfach spi­ral­för­mig durch­lau­fen. Durch diese zyklische Wie­der­ho­lung nähert sich das Projekt zwar ver­gleichs­wei­se langsam den gesetzten Zielen an, al­ler­dings wird im Gegenzug das Risiko eines ge­schei­ter­ten Ent­wick­lungs­pro­zes­ses durch re­gel­mä­ßi­ge Kon­trol­len ent­schei­dend minimiert.

De­fi­ni­ti­on

Das Spi­ral­mo­dell ist ein von Barry W. Boehm ent­wi­ckel­tes Vor­ge­hens­mo­dell zur Soft­ware­ent­wick­lung aus dem Jahr 1986. Es geht davon aus, dass es sich bei der Ent­wick­lung von An­wen­dun­gen um einen ite­ra­ti­ven Zyklus handelt, der so oft durch­lau­fen wird, bis das gesteckte Ziel erreicht ist. Durch re­gel­mä­ßi­ges Ab­schät­zen von Risiken sowie re­gel­mä­ßi­ge Kon­trol­len des Zwi­schen­pro­dukts minimiert das Spi­ral­mo­dell das Risiko eines Miss­erfolgs bei großen Soft­ware­pro­jek­ten erheblich.

Spi­ral­mo­dell-Erklärung: Wie funk­tio­niert das Spi­ral­mo­dell?

Probleme im Rahmen des Ent­wick­lungs­pro­zes­ses können ganz un­ter­schied­li­che Aus­wir­kun­gen auf das Ge­samt­pro­jekt haben. Mit stei­gen­den Kosten, Mehr­auf­wand und einem ver­spä­te­ten Release ist in jedem Fall zu rechnen – Faktoren, die ins­be­son­de­re für kleinere Firmen schnell zu einem Exis­tenz­pro­blem werden können. Mit seinem in­kre­men­tel­len, ite­ra­ti­ven Ansatz – der auch die re­gel­mä­ßi­ge Ri­si­ko­be­trach­tung in Form von Prototyp-Entwürfen, Analysen oder Si­mu­la­tio­nen vorsieht – soll das Spi­ral­mo­dell derartige Szenarien ver­hin­dern oder zumindest deren negativen Folgen ab­schwä­chen. Das Soft­ware­pro­jekt durch­läuft dabei kon­ti­nu­ier­lich bis zum finalen Status den Spi­ral­mo­dell-Zyklus, der grund­sätz­lich folgende vier Schritte umfasst:

Phase 1: De­fi­ni­ti­on von Zielen und Al­ter­na­ti­ven sowie Be­schrei­bung der Rah­men­be­din­gun­gen

Ein typischer Zyklus im Spi­ral­mo­dell startet mit der Über­le­gung, welche Ziel­vor­ga­ben mit den einzelnen Schritten der Soft­ware­ent­wick­lung verbunden sein sollen. Dabei kann es sich bei­spiels­wei­se um die Ver­bes­se­rung der Per­for­mance oder um den Ausbau der Funk­tio­na­li­tät handeln. Gleich­zei­tig gilt es, Al­ter­na­ti­ven für die Umsetzung zu de­fi­nie­ren (bei­spiels­wei­se Design A vs. Design B) und die Rah­men­be­din­gun­gen sowie Kosten oder Zeit­auf­wand zu bestimmen.

Phase 2: Bewertung der Al­ter­na­ti­ven

Im nächsten Schritt folgt die Eva­lua­ti­on der Al­ter­na­ti­ven, wobei Ziel­vor­ga­be und Rah­men­be­din­gun­gen als ent­schei­den­de Be­zugs­grö­ßen dienen. In dieser Phase des Spi­ral­mo­dell-Zyklus sollen Un­si­cher­heits­be­rei­che iden­ti­fi­ziert werden, die für den Fort­schritt des Soft­ware­pro­jekts ein si­gni­fi­kan­tes Risiko dar­stel­len. An­schlie­ßend soll die Aus­ar­bei­tung der ri­si­ko­ärms­ten und kos­ten­ef­fi­zi­en­tes­ten Strategie erfolgen, wobei Methoden wie Pro­to­ty­p­ing, Si­mu­la­tio­nen, Benchmark-Tests, Ana­ly­se­mo­del­le, Nut­zer­be­fra­gun­gen zur Anwendung kommen können.

Phase 3: Ent­wick­lung und Über­prü­fung des Zwi­schen­stands

Im Anschluss an die Ri­si­ko­ana­ly­se geht es mit der ei­gent­li­chen Ent­wick­lung der Software weiter, wobei diese Phase immer auch durch die relativen Rest­ri­si­ken geprägt ist. Sollten bei­spiels­wei­se Leistungs- oder Be­nut­zer­ober­flä­chen-Risiken oder Risiken der internen Schnitt­stel­len­kon­trol­le den Ent­wick­lungs­pro­zess sehr stark do­mi­nie­ren, bietet sich zunächst eine evo­lu­tio­nä­re Ent­wick­lungs­stra­te­gie an, bei der das Projekt genauer spe­zi­fi­ziert und Pro­to­ty­pen optimiert werden. Der ei­gent­li­che Code wird dabei mehrmals ge­schrie­ben und getestet, bis das ge­wünsch­te Resultat erreicht ist, das dann als ri­si­ko­ar­me Basis für weitere Ent­wick­lungs­schrit­te 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 ei­ner­seits um die reguläre Fort­set­zung des Projekts handeln, wenn die Ziel­vor­ga­be eines Zyklus erfüllt werden konnte und die De­fi­ni­ti­on des nächsten Ziels ansteht. An­de­rer­seits kann es aber auch darum gehen, Lösungen zu finden, falls der vor­an­ge­hen­de Ent­wick­lungs­schritt feh­ler­haft verlief. So kann die bisherige Strategie zum Beispiel durch eine der bereits vorab de­fi­nier­ten Al­ter­na­ti­ven oder eine neue Al­ter­na­ti­ve ersetzt werden. Mit dieser kann man dann einen neuen Versuch starten, das vor­ge­ge­be­ne Ziel zu erreichen.

Hinweis

Das Spi­ral­mo­dell (Soft­ware­ent­wick­lung) ist ein ge­ne­ri­sches Vor­ge­hens­mo­dell. Die vier Phasen geben lediglich die grund­le­gen­den Ziele eines Zyklus vor, müssen sich aber nicht in jeder Umrundung wi­der­spie­geln. Auch ihre Rei­hen­fol­ge ist im Grunde genommen nicht strikt durch das Spi­ral­mo­dell vor­ge­ge­ben. Aus diesem Grund lässt sich das Modell jederzeit mit anderen Vor­ge­hens­me­tho­den kom­bi­nie­ren.

Grafische Abbildung des Spi­ral­mo­dells nach Boehm

Teil der Pu­bli­ka­ti­on aus dem Jahre 1988 ist unter anderem auch eine grafische Dar­stel­lung des Spi­ral­mo­dells, die ex­em­pla­risch aufzeigt, wie der spi­ral­för­mi­ge, zy­klus­ge­stütz­te Prozess der Soft­ware­ent­wick­lung aussieht. Jede Windung der Spirale ver­kör­pert in dieser Skizze einen ab­ge­schlos­se­nen Zyklus, wobei immer der Reihe nach vier ver­schie­de­ne Qua­dran­ten passiert werden, die in diesem Fall für die vier möglichen Phasen des Modells stehen. Mit zu­neh­men­der Größe der Spirale steigen der erzielte Fort­schritt sowie auch die Zu­stim­mung durch Über­prü­fung (X-Achse) und die Ent­wick­lungs­kos­ten (Y-Achse).

Vor- und Nachteile des Spi­ral­mo­dells für die Soft­ware­ent­wick­lung

Soft­ware­ent­wick­lung nach dem Spi­ral­mo­dell ist vor allem bei großen, komplexen Projekten beliebt, bei denen die Kontrolle des Budgets für Auf­trag­ge­ber und Ent­wick­ler­fir­men einen besonders hohen Stel­len­wert hat. Alle Be­tei­lig­ten pro­fi­tie­ren in diesem Fall von der zentralen Rolle der Ri­si­ko­ana­ly­se, die den wohl größten Vorteil des Spi­ral­mo­dells gegenüber anderen Vor­ge­hens­mo­del­len darstellt. Die re­gel­mä­ßi­ge Be­ur­tei­lung der Risiken zahlt sich ins­be­son­de­re dann aus, wenn neuartige tech­ni­sche Um­ge­bun­gen zum Einsatz kommen, die im Regelfall aufgrund der fehlenden Er­fah­rungs­wer­te mit einem be­son­de­ren Ri­si­ko­po­ten­zi­al verknüpft sind.

Auch der zyklische Aufbau zählt zu den großen Stärken des Modells: Konflikte zwischen dem Design und den tech­ni­schen An­for­de­run­gen, die an die Software gestellt werden, sind dank der re­gel­mä­ßi­gen Kon­trol­len so gut wie aus­ge­schlos­sen. Zudem ist das Einholen und Be­rück­sich­ti­gen von Feedback aufgrund des spi­ral­för­mi­gen Fort­schritts jederzeit möglich. Auf diese Weise lassen sich sowohl Auf­trag­ge­ber als auch Anwender bereits von Beginn an in den Ent­wick­lungs­pro­zess einbinden. Vor­aus­set­zung, um diese Vorzüge genießen zu können, ist aber ein sehr aktives und auf­wen­di­ges Ma­nage­ment des Projekts, bei dem die einzelnen Zyklen kon­ti­nu­ier­lich und sorg­fäl­tig kon­trol­liert und do­ku­men­tiert werden.

Dass die vielen kleinen Schritte bei der Soft­ware­ent­wick­lung nach dem Spi­ral­mo­dell aber nicht immer vor­teil­haft sind, beweist die Tatsache, dass es – trotz viel­sei­ti­ger Tests – nicht selten vorkommt, dass unfertige Pro­gramm­tei­le ihren Weg in das Pro­duk­tiv­sys­tem finden. In der Kon­se­quenz besteht immer die Gefahr, dass etwaige Fehler oder kon­zep­tio­nel­le Schwächen auch in das End­pro­dukt gelangen. Zudem kann es jederzeit zu zeit­li­chen Ver­zö­ge­run­gen bei der Ent­wick­lung kommen, wenn innerhalb eines Zyklus bzw. bei der Planung des nach­fol­gen­den Zyklus wichtige Ent­schei­dun­gen getroffen werden müssen, die das weitere Vorgehen betreffen.

Nach­fol­gend die Vor- und Nachteile des Spi­ral­mo­dells im ta­bel­la­ri­schen Überblick:

Vorteile Nachteile
flexibles, ge­ne­ri­sches Modell hoher Ma­nage­ment­auf­wand
frühe Ein­bin­dung von Auf­trag­ge­bern und Anwendern möglich re­gel­mä­ßi­ge Ent­schei­dun­gen können den Ent­wick­lungs­pro­zess verzögern
pe­ri­odi­sche, ri­si­ko­ge­trie­be­ne Über­prü­fung Durch den auf­ge­glie­der­ten Ent­wick­lungs­pro­zess gelangen Fehler und kon­zep­tio­nel­le Un­ge­reimt­hei­ten leicht in das End­pro­dukt
perfekte Ab­stim­mung zwischen tech­ni­schen An­for­de­run­gen und Design Know-how in Ri­si­ko­ana­ly­se bzw. -ma­nage­ment es­sen­zi­ell, aber oft nicht vorhanden
maximale Kontrolle über Kosten, Res­sour­cen und Qualität des Soft­ware­pro­jekts für kleinere Projekte mit über­schau­ba­rem Risiko un­ge­eig­net
gut für neuartige tech­ni­sche Um­ge­bun­gen geeignet
Zum Hauptmenü