Warum die Vasa sank

Software gehört zu den komplexesten menschlichen Erzeugnissen. Die Gründe dafür sind sicherlich im hohen Abstraktionsgrad, dem mitunter erheblichen Funktionsumfang und ihrer fehlenden physischen Präsenz zu suchen. Man kann Software nicht einfach anfassen und nach allen Seiten drehen, um ihre Funktionen und Fehler zu verstehen.

Bei der Erstellung von Softwaresystemen können die Beteiligten aus einem variantenreichen Schatz möglicher Fehler schöpfen, der interessanterweise nicht auf die Softwareproduktion beschränkt ist, sondern offenbar in der menschlichen Natur begründet liegt und bereits seit langer Zeit zusammengetragen und gehortet wird:

Im Jahr 1628 sank die Vasa, das modernste Kriegsschiff der königlich-schwedischen Marine, bei ihrer Jungfernfahrt noch im Stockholmer Hafen. Zu Recht mag man sich fragen: "Was hat ein fast 400 Jahre altes Kriegsschiff mit mobilen Apps und Cloud Services zu tun?" In ihrem vielbeachteten Artikel "Why the Vasa sank" haben Richard Fairley und Mary Willshire die Gründe für den Untergang untersucht und interessante Parallelen zu den typischen Problemen heutiger Softwareprojekte gefunden:

 
  1. Extremer Zeitdruck: Die Vasa wurde unter harten Zeitrestriktionen fertiggestellt, um einen drängenden Bedarf zu erfüllen.
  2. Späte Anforderungen: Viele Änderungen an den Einsatzcharakteristika wurden noch während des Baus vorgenommen.
  3. Fehlen technischer Spezifikationen: Die (nicht existierenden) Spezifikationen wurden nicht entsprechend der veränderten Einsatzbedingungen angepasst.
  4. Fehlen eines dokumentierten Projektplans: Während der einjährigen Übergabe der Projektleitung war es für den Assistenten schwierig, das Projekt zu leiten. Dies resultierte in der unzureichenden Anleitung der verschiedenen am Schiffbau beteiligten Gruppen (z. B. der Schiffszimmermann, die Schiffbauer und zahlreiche Subunternehmer). Es gibt keine Erkenntnisse, dass der neue Projektmanager (der vorherige Assistent) irgendwelche Pläne erstellte, nachdem der ursprüngliche Schiffszimmermann gestorben war.
  5. Übermäßige Innovation: Niemand in Schweden, einschließlich des Schiffszimmermanns, hatte jemals zuvor ein Schiff mit zwei Kanonendecks gebaut.
  6. Sekundäre Inovationen: Viele Folgeinnovationen wurden während des Baus eingeführt, um der vergrößerten Länge, dem zusätzlichen Kanonendeck und weiteren Änderungen Rechnung zu tragen.
  7. Eingeschlichene Anforderungen: Anscheinend war niemandem klar, wie sehr sich die Vasa während der zweieinhalbjährigen Bauzeit entwickelt hatte.
  8. Fehlende wissenschaftliche Methoden: Es gab keine bekannten Methoden, um den Schwerpunkt, die Festigkeit und die resultierende Stabilität des Schiffes zu berechnen.
  9. Ignorieren des Offensichtlichen: Die Vasa wurde vom Stapel gelassen, obwohl sie einen Stabilitätstest nicht bestanden hatte.
  10. Unethisches Verhalten: Die Ergebnisse des Stabilitätstests waren einigen bekannt, wurden aber nicht an andere weitergegeben.
 

Die genannten Fehler sind in der modernen Softwareentwicklung so aktuell wie im Jahr 1628 beim Bau der Vasa.

Moderne Systemumgebungen

Dazu kommt, dass mit dem Siegeszug webbasierter und mobiler Systeme immer weniger in langfristigen Releasezyklen geplant und gehandelt wird, sondern dass neue Anforderungen und Features im laufenden Produktivbetrieb in die Systeme integriert werden. Ansätze wie DevOps, Continuous Delivery und agile Prozesse bekommen damit immer größere Bedeutung.

Im Rahmen meiner Tätigkeit setze ich mich mit der Gestaltung und Anwendung maßgeschneiderter Softwareprozesse auseinander, um die genannten Risiken zu minimieren und zeit- und ressourcenkritische Projekte oder organisatorische Transformationsprozesse erfolgreich zum Abschluss zu bringen.