Beim Thema «Entwicklung von sicherheitskritischen Systemen» fällt oft die Aussage, dass diese Art von Entwicklung nicht mit agilen Methoden zu vereinbaren sei. Die Entwicklung von sicherheitskritischen Systemen schliesst agile Methoden jedoch nicht zwangsläufig aus. Eine effektive und effiziente Etablierung agiler Methoden im Bereich «Sicherheitskritische Systementwicklung» kann den Projekterfolg sogar begünstigen.
Wer mit dem Flugzeug in die Ferien fliegt oder mit dem Auto zur Arbeit fährt, verlässt sich darauf, dass diese Systeme korrekt funktionieren. Fehler in solch sicherheitskritischen Systemen können zu erheblichen Schäden an Mensch und Umwelt führen. Wer solche Systeme herstellt muss diverse Safety Standards erfüllen, damit die Sicherheit gewährleistet ist.
Safety Standards stellen strenge Anforderungen an die Dokumentation der gesamten Entwicklung, sowie an die Nachvollziehbarkeit (Traceability). Eine lückenlose Rückverfolgung jeder einzelnen Anforderung über das Design bis hin zur Implementation und Integration, sowie dessen Verifikation, inklusive der Berücksichtigung sämtlicher Änderungen ist unabdingbar.
Blick ins Agile Manifest
Sind agile Methoden überhaupt kompatibel zu solchen Safety Standards? Ein Blick ins Agile Manifest gibt Aufschluss:
Zur Förderung des gemeinsamen Verständnisses und zur Vermeidung von Fehlern ist eine offene und effektive Kommunikation für alle Arten von Entwicklungen notwendig. Dies bezieht sich sowohl auf die Interaktionen der einzelnen Projektmitgliedern, sowie auch auf die Zusammenarbeit mit der Kundschaft.
Sicherheitskritische Systeme sind keines Wegs gegen Änderungen an den Anforderungen gefeit. Bei komplexen Entwicklungen kommen mit zunehmendem Projektfortschritt neue Erkenntnis hervor, welche zu Änderungen an den Anforderungen oder sogar zu zusätzlichen Safety Anforderungen führen können. Diese Änderungen müssen nachvollziehbar dokumentiert werden. Eine umfassende Dokumentation gehört bei einer sicherheitskritischen Systementwicklung zu einer funktionierenden Software schlicht dazu.
Herausforderung
Die herausforderungsvollsten Punkte im Umgang mit agilen Methoden sind zweifelslos die umfassende Dokumentation und die dafür notwendige Traceability. Getreu dem Motto des Scrum Guides: «einfach zu verstehen, schwierig zu meistern», haben diese schon manche Projektleiter*innen davon abgebracht, ein sicherheitskritisches System agil zu entwickeln.
Möglicher Lösungsansatz
Daher empfehle ich, nicht einfach stur Scrum nach Schulbuch anwenden zu wollen. Vielmehr soll man sich aus der Prozessperspektive mit einem agilen Mindset seinen eigenen, dafür zugeschnittenen Prozess erarbeiten.
Als Beispiel ist eine Art iteratives V-Modell denkbar, wobei im ersten Inkrement das MVP (Minimum Viable Product) implementiert und das Vorgehen von der Zulassungsstelle beurteilt wird. Im zweiten Inkrement wird eine Änderung gem. dem etablierten Änderungsprozess umgesetzt und ebenfalls von der Zulassungsstelle beurteilt. Die weiteren Inkremente werden nicht mehr einzeln von der Zulassungsstelle beurteilt, sondern in deren Gesamtheit bei der Zulassung des Gesamtsystems. Die Kundschaft soll dabei so oft wie sinnvoll involviert werden, um das Ergebnis zu validieren.
Vorteile
- Bereits nach dem zweiten Inkrement sind Unklarheiten bez. des Prozesses und der zu erbringenden Artefakte mit der Zulassungsstelle geklärt. Es sind weniger Überraschungen am Ende des Projekts zu erwarten.
- Man hat eine maximale Wiederverwendbarkeit von bestehenden Prozessen, da diese innerhalb der einzelnen Inkremente jeweils durchlaufen werden.
- Durch die Anwendung des Änderungsprozesses kann man mit Änderungen an den Anforderungen umgehen und erzeugt somit die notwendige Flexibilität für ein agiles Vorgehen. Zudem werden die Mitarbeitenden bereits während der Entwicklung für den Prozess geschult, welchen sie auch nach der Entwicklung zu leben haben.
Fazit
Das Agile Manifest widerspricht in keiner Weise den Ansprüchen an eine sicherheitskritische Systementwicklung. Wenn ich bedenke, wie sich die Komplexität solcher Systeme in den letzten Jahren entwickelt hat, erachte ich agile Methoden für die Entwicklung komplexer, sicherheitskritischer Systeme als sehr sinnvoll. Der durch das agile Vorgehen erzeugte Mehraufwand bei der Dokumentation, wird sich durch den gewonnen Risikoabbau während der Entwicklung, bei der Abnahme und Zulassung des Systems auszahlen. Der Projekterfolg wird somit begünstigt. Wem es also gelingt, agile Methoden im Bereich «Sicherheitskritische Systementwicklung» effektiv und effizient zu etablieren, wird sich damit am Markt differenzieren und nachhaltigen Unternehmenserfolg sichern können.
Weiterführende Links zum Thema