Die Verantwortung der Entwickler

(Eins vorweg: der hier aus pragmatischen Gründen verwendete Begriff „Entwickler“ ist geschlechtsneutral gemeint und soll niemanden ausschließen; vielmehr seien damit alle Personen angesprochen die Software entwickeln, unabhängig von der Geschlechtsbezeichnung (m/w/*), der sie sich zugehörig fühlen.)

Software ist allgegenwärtig und spielt in vielen Lebensbereichen eine Rolle. So schlägt sie z.B. im Onlineshop Artikel vor, die einem auch gefallen könnten, oder im Streamingdienst Filme und Serien, die aufgrund bereits geschauter Titel wahrscheinlich ebenfalls den Geschmack des Zuschauers treffen. Doch auch in vielen sicherheitskritischen Bereichen, in denen es um Menschenleben geht, ist Software involviert. Sind wir Entwickler uns der daraus erwachsenden Verantwortung auch immer bewusst?

Schon mehrfach hat Robert „Uncle Bob“ C. Martin diesen Umstand in seinem Clean Coder Blog thematisiert. In seinem jüngsten Beitrag 737 Max 8 versucht Martin zu analysieren, wie es zu der fehlerhaften Software dieses Flugzeugtyps der Firma Boeing kommen konnte. Stimmen die behaupten, Boeing hätte aus Profitgier bewusst sicherheitskritische Belange unter den Teppich gekehrt, erteilt Martin, der selbst Hobbypilot ist, eine Abfuhr. Sicherlich, so schreibt er, habe niemand aus schlechter Absicht gehandelt. Alle bei Boeing Beschäftigten seien sich bewusst, dass jegliche Beeinträchtigung der Sicherheit ihrer Flugzeuge das Aus für die Firma, und somit für ihre Arbeitsplätze bedeuten könne. Stattdessen seien eine ganze Reihe fataler Fehler passiert. Ein Fehler beispielsweise sei, dass die Software den Daten eines einzigen fehlerhaften Sensors vertraute, ohne Verifizierung durch Daten anderer Sensoren oder Systeme. Ein weiterer Fehler sei gewesen, dass es den Piloten nicht möglich war, den Autopiloten abzuschalten, was letztlich zu den tragischen Abstürzen führte.

Doch wie konnte es dazu kommen? Martin erklärt sich den Umstand dadurch, dass die betreffende Anpassung der Software bei Boeing als „unbedeutende Optimierung“ gesehen worden sei. Die Optimierung sollte das Flugverhalten der Max 8 an das der 737-er-Standardausführung angleichen, so dass für bestehende 737-er-Piloten keine Umschulung nötig wäre.

Die Einstellung, bei der Softwäreänderung handele es sich lediglich um eine „unbedeutende Optimierung“, sei eine gravierende Fehleinschätzung gewesen, und habe Boeing-Mitarbeiter nicht mehr daran denken lassen, dass jegliche Software, welche die Flugkontrollsysteme beeinflusst, sicherheitskritisch ist. Deswegen sei wohl bei der Entwicklung nicht die Sorgfalt an den Tag gelegt worden, die eigentlich notwendig gewesen wäre. So gibt es in der Luftfahrt die Grundsätze, dass man keinem einzelnen Instrument allein vertrauen darf, und dass der Autopilot von den Piloten jederzeit ausgehebelt werden kann. Beides war in der Software der 737 Max 8 nicht berücksichtigt. Zudem hatte man es nicht für nötig befunden, Flugzeugbetreiber und Piloten über besagte Softwareanpassung zu informieren.

Letztlich führt Martin das Ganze darauf zurück, dass jemand es „gründlich vermasselt“ habe. Fehler sind menschlich, und wurden auch in der Vergangenheit schon oft gemacht (weitere Beispiele dafür führt Martin in seinem Blogpost auf).

Doch er kommt auch zu dem Schluss, dass wenn Menschen durch fehlerhafte Software ums Leben kommen, letztendlich wir Entwickler daran schuld sind! Schließlich ist es unser Code!  Daher nimmt er alle Entwickler in die Pflicht: essentiell ist beispielsweise, dass man die  jeweilige Fachdomäne sehr gut kennt. Weiterhin sollen Entwickler die Risiken, die durch ihren Code entstehen können, antizipieren und entsprechend handhaben. Letztendlich sollen Entwickler auch den Mut haben, „nein“ zu sagen, wenn das Risiko, den Code in die Produktion zu übernehmen, zu hoch ist.

So viel zu Robert C. Martins Blogbeitrag. Weitere seiner Posts zur Verantwortung von Entwicklern sind „The Obligation of the Programmer“ und „We Programmers“.

Auch im Straßenverkehr spielt Software eine immer bedeutendere Rolle. Je weiter wir auf dem Weg zum autonomen Fahren vorankommen (wir berichteten), umso mehr Verantwortung übertragen wir auf die Software. Um die „Vision Zero“, also einen Straßenverkehr ohne Tote & Verletzte wahr werden zu lassen, liegt es in der Verantwortung von uns Softwareentwicklern, die Sicherheit der Verkehrsteilnehmer niemals aus den Augen zu verlieren, um die Software für autonomes Fahren so sicher wie möglich zu machen.

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*Pflichtfelder

*