Ein Skandal ungeheuren Ausmaßes erschüttert aktuell die Autowelt. Die bekannt gewordenen Manipulationen der Volkswagen AG in der Regelungssoftware ihrer Dieselfahrzeuge, damit diese die strengen Umwelt-Anforderungen in den USA erfüllen, haben für ein Erdbeben gesorgt. Die Aktie des Volkswagen-Konzerns ist abgestürzt. Das Image des Automobilherstellers, einst das Aushängeschild der deutschen Wirtschaft, ist auf lange Zeit beschädigt. Im Top-Management des Autobauers rollen die Köpfe. Volkswagen räumte ein, bei weltweit elf Millionen Fahrzeugen Messdaten manipuliert zu haben, um Abgasstandards einzuhalten. Die Schweiz, in der rund 180.000 VW-Fahrzeuge von diesem Betrug betroffen sein könnten, hat kürzlich angekündigt die Neuzulassung von manipulierten VW’s in Zukunft zu verbieten. Eine Klagewelle rollt auf den Konzern zu. Und mittlerweile steht die gesamte deutsche Automobilindustrie unter Generalverdacht: haben auch andere Hersteller geschummelt?

Die Jagd auf die Täter hat begonnen

Die Folgen dieser Affäre sind zum jetzigen Zeitpunkt kaum abzuschätzen. Natürlich ist man auch schon auf der Suche nach dem Schuldigen. In einer Unternehmenskultur, in der Fehler zu einer meist auf Personen gerichteten Sanktionierung im Sinne einer Straf- und Schuldkultur führen, muss der bzw. müssen die „Täter“ ermittelt werden. Medienwirksam wird die schonungslose Aufklärung versprochen. Einer musste daher schon früh seinen Hut nehmen: Ex-Vorstandschef Prof. Dr. Martin Winterkorn übernahm die Verantwortung und trat von seinem Amt zurück.

Wenngleich Winterkorn ganz bestimmt nicht derjenige war, der die Software unmittelbar manipuliert hat, so ist er letztendlich ohne Zweifel für die Rahmenbedingungen mitverantwortlich, unter denen dieses Desaster passieren konnte. In der u.a. von Winterkorn geformten, extrem hierarchischen Command&Control-Struktur wagen nur wenige Mitarbeiter, Einwände vorzubringen, oder gar schlechte Nachrichten zu überbringen. Antiquierte Managementwerkzeuge, wie Management by Objectives (MBO), sowie falsche Anreize über ein variables Vergütungssystem, Bonuszahlungen und Incentives, und andere, die Mitarbeiter demotivierende Instrumente, führen letztendlich dazu, dass man lieber vertuscht und manipuliert anstatt ehrlich und transparent unerfüllbare Ziele des Managements zu kommunizieren. „Es tut mir leid, aber die strengen Grenzwerte der USA können unsere Dieselmotoren aus technischen Gründen einfach nicht erreichen.“ wäre in dieser Situation die richtige Mitteilung an die obersten Führungsebenen gewesen. Stattdessen hat die Angstkultur bei VW aber dazu geführt, das man lieber den Mund hält, mit der Software trickst, und nach oben das obligatorische „Alles in Ordnung, wir schaffen das!“ meldet.

Martin Winterkorn wird wohl sehr weich fallen. Laut Medienberichten hat er voraussichtlich Aussicht auf eine millionenschwere Rente und eine mindestens ebenso großzügige Abfindung. Dem ehemaligen VW-Manager stehen vermutlich 62 Millionen Euro fürs Alter zur Verfügung – vor Steuern. Die anderen Verantwortlichen für diese Affäre, auf die die Jagd jetzt begonnen hat, werden wahrscheinlich nicht mit einem goldenen Handschlag verabschiedet werden. Und ob Winterkorns Nachfolger Matthias Müller, der noch vor wenigen Wochen das autonome Fahren als Hype bezeichnet hat, den dringend notwendigen kulturellen Wandel und die Neuaufstellung bei Volkswagen herbeiführen kann, wird die Zukunft zeigen.

Dieser Vorfall ist aber auch eine gute Gelegenheit, um wieder einmal über das Thema Ethik in der Softwareentwicklung nachzudenken.

Verantwortungsvolles Handeln

Die Ethik ist ein Teilbereich der Philosophie, der sich mit den Voraussetzungen menschlichen Handelns und seiner Bewertung befasst. Einfach ausgedrückt geht es um die Unterscheidung von gut und böse. Menschliches Handeln wird maßgeblich von Werten, Normen, Sitten und Moralvorstellungen beeinflusst. In der Ethik werden die Folgen unseres Handelns für andere Menschen, unsere Mitgeschöpfe und die Umwelt reflektiert.

In einer Welt, in der Software ein wesentlicher Bestandteil aller Systeme ist von denen wir umgeben sind, stellt sich auch schnell die Frage, welche individuelle, berufliche und gesellschaftspolitische Verantwortung ein Softwareentwickler für sein Handeln bzw. auch für sein Nicht-Handeln trägt. Und dabei geht es häufig um mehr als nur die Gesetze zu respektieren.

CC BY SA 2.0 AJC ajcann.wordpress.com
(CC BY SA 2.0 AJC ajcann.wordpress.com)
Das Thema Ethik in der IT ist nicht neu. Bereits im Jahr 1972 erschien der ACM Code of Professional Conduct (ACM = The Association for Computing Machinery, Inc.), eine Art Verhaltenskodex für Softwareentwickler. Dieser wurde 1992 in einer überarbeiteten Fassung als ACM Code of Ethics and Professional Conduct verabschiedet. Daraus ging dann im Jahr 1999 der IEEE-CS/ACM Software Engineering Code of Ethics and Professional Practice hervor. Neben diesen bekannten Beispielen gibt es noch eine Reihe weiterer Verhaltenskodizes in der Software-Industrie. So ist es durchaus üblich, das man sich auch in Open Source Projekten solche Ethikrichtlinien gibt, vor allem weil sich in solchen globalen Projekten die meisten Entwickler nie in ihrem Leben gesehen haben oder sehen werden.

Auf den kleinsten, gemeinsamen Nenner reduziert enthalten alle diese Kodizes folgende Prinzipien:

  • Ein Softwareentwickler soll mit seiner Tätigkeit zur Gesellschaft und zum menschlichen Wohlergehen beitragen. Er darf andere durch seine Tätigkeit nicht schädigen.
  • Er handelt im Interesse seiner Kunden und Arbeitgeber, sofern dieses nicht einem öffentlichen Interesse (siehe vorherigen Punkt) entgegensteht.
  • Ein Softwareentwickler sorgt dafür, dass sein Produkt den höchsten Qualitätsstandards entspricht.
  • Er soll ehrlich und vertrauenswürdig sein.
  • Er soll sich gegenüber seinen Kollegen fair verhalten und andere Menschen nicht diskriminieren.
  • Ein Softwareentwickler schützt das Eigentum anderer, einschließlich Urheberrechte und Patente.
  • Er respektiert die Privatsphäre anderer und geht mit personenbezogenen Daten verantwortungsvoll um.
  • Ein Softwareentwickler verschreibt sich dem lebenslangen Lernen und fördert einen ethischen Ansatz für die Ausübung des Berufs.

Manifesto for Responsible Software Development

Das Manifest der Software Craftsmanship Bewegung, die die Softwareentwicklung als eigenständige Profession/Handwerk (und nicht als Ingenieursdisziplin) versteht, greift einige der vorgenannten Punkte auf. Auch im Software Craftsmanship spielen die Verantwortlichkeiten der Entwickler für ihr Handeln eine zentrale Rolle.

Sehr viel deutlicher auf ethische Aspekte und die gesellschaftliche Verantwortung des Softwareentwicklers als das Software Craftsmanship Manifest zielt eine relativ neue Grundsatzerklärung ab: das Manifesto for Responsible Software Development. In diesem Manifest werden die ethische Verantwortung, Menschen- und Bürgerrechte, sowie der gewissenhafte und nachhaltige Umgang mit unseren Ressourcen explizit adressiert.

backlit-keyboard
(CC BY SA 4.0 Colin)
Der VW-Abgasskandal hat wieder einmal gezeigt, das verantwortungsvolles Handeln von Softwareentwicklern in allen Branchen ein wichtiges und hochaktuelles Thema ist. In komplexen Softwareprogrammen mit vielen tausend Lines Of Code wie einer Motorsteuerung ist es natürlich für einen Entwickler gar kein Problem eine Routine zu verstecken, die Sensormesswerte auswertet und anhand dieser erkennt, dass das Dieselaggregat im Labor auf seine Abgaswerte hin untersucht werden soll. Die Frage ist nur: darf er das unter ethischen Gesichtspunkten – auch auf Anweisung eines Vorgesetzten – tun? Wie viel Verantwortung trägt er dann für den daraus resultierenden Skandal?

Die Manipulation von Meßdaten ist nur eine Facette dieser Thematik. Ein weiteres Beispiel, bei dem der ethische Aspekt eine Rolle spielt, stellt das sog. Digital Gerrymandering dar. Unter Gerrymandering (zu deutsch etwa: Wahlkreisschiebung) versteht man eine Form von Manipulation von Wahlergebnissen. Im Digitalzeitalter existieren mannigfaltige Möglichkeiten politische Wahlen zu beeinflussen. Der Harvard-Professor Jonathan Zittrain untersuchte beispielsweise ein Experiment während der Halbzeit-Kongresswahlen in den USA 2010. Im Rahmen dieses Experiments wurde Facebook-Nutzern in den USA bis zu sechs ihrer Freunde in ihrer Timeline angezeigt, die schon ihre Stimme abgegeben hatten. Dem gegenüber wurde anderen Facebook-Nutzern diese Information vorenthalten. Die Auswertung ergab, das sich dadurch die Wahlbeteiligung unter den Facebook-Nutzern, die die Freunde angezeigt bekamen, signifikant steigern ließ. In diesem Fall handelte es sich zwar nur um eine Studie, aber was wäre wenn diese Info beispielsweise nur potenziellen Wählern einer bestimmten Partei eingeblendet werden würde?

Diskutieren Sie mit

Ethische Aspekte sind allgegenwärtig in der Softwareentwicklung. Das fängt schon bei der Auswahl der Branche an, in der der Entwickler arbeiten möchte. Doch darüber hinaus sind heutzutage Softwareentwickler auch in ihrer täglichen Arbeit mit ethischen und moralischen Fragestellungen konfrontiert. Wie gehen wir damit um? Mich würde Ihre Meinung zu diesem Thema interessieren. Schreiben Sie doch einfach einen Kommentar, ich freue mich auf eine spannende und interessante Diskussion.

Ethik in der Softwareentwicklung
Markiert in:                        

2 Gedanken zu „Ethik in der Softwareentwicklung

  • 6. Oktober 2015 um 18:12 (06:12 pm CEST)
    Permalink

    Konsequent umgesetzt würde dieser Punkt: „Ein Softwareentwickler soll mit seiner Tätigkeit zur Gesellschaft und zum menschlichen Wohlergehen beitragen. Er darf andere durch seine Tätigkeit nicht schädigen.“ dem friedvollen Miteinander auf diesem Planeten durchaus zuträglich sein. Software für militärische Zwecke dürfte demnach gar nicht existieren – wobei sogar zentrale Erfindungen aus dem militärischen Bereich hervorgegangen sind. Wo verläuft in diesem Fall die Abgrenzung, d.h. wo fängt die militärische Verwendung an und wo hört sie auf. Der Fall der Software zur Steuerung von Waffensystemen ist denk ich eindeutig, aber wie verhält es sich mit der Office-Anwendung auf dem PC einer Amtsstube des Verteidigungsministeriums? Wie kann ein Softwareentwickler gewährleisten das seine Codezeilen nicht in ‚falsche Hände‘ geraten?

    twitter: @bertholdschulte, blog: bschulte.org

    Antworten

Schreibe einen Kommentar

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