Die Welt verbessern: Responsible Engineering – Ethik in der Softwareentwicklung

Softwareentwicklung, Ethik und die Frage nach der Verantwortung: Wie diese losen Enden zueinander finden, beschreibt der aktuelle Young-Professionals-Beitrag.

Lesezeit: 18 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 10 Beiträge

(Bild: metamorworks/Shutterstock.com)

Von
  • Djordje Atlialp
Inhaltsverzeichnis

Software und digitale Produkte sind heute aus dem Alltag der Menschen kaum mehr wegzudenken. Smartphones, Smartwatches, Herzschrittmacher, Kaffeeautomaten, Fernseh- und Haushaltsgeräte, Smarte Stromzähler, Diabetes-Pumpen, Ticketschalter im öffentlichen Verkehrsnetz, Waschmaschinen, Messengerdienste und viele mehr. Die Liste technischer Produkte, die auf Hard- und Software angewiesen sind, ist schier unendlich. Die meisten nutzen diese Geräte wie selbstverständlich und vertrauen darauf, dass die das tun, was von ihnen erwartet wird. Hard- und Software haben im Sinne der Menschen zu funktionieren – Nachteile für die Anwender dürfen nicht entstehen. Ein Arbeiten gegen die Anwender ist praktisch nicht vorstellbar.

Young Professionals schreiben für Young Professionals

Dieser Beitrag ist Teil einer Artikelserie, zu der heise Developer junge Entwickler:innen einlädt – um über aktuelle Trends, Entwicklungen und persönliche Erfahrungen zu informieren. Die Reihe "Young Professionals" erscheint im monatlichen Rhythmus. [br] Bist du selbst ein "Young Professional" und willst einen (ersten) Artikel schreiben? Schicke deinen Vorschlag an die Redaktion: developer@heise.de. Wir stehen dir beim Schreiben zur Seite.

Dieser Vertrauensvorschuss der Menschen in die Technik ist sowohl kraftspendend als auch notwendig. Aber nur die wenigsten verstehen, was sich im Hintergrund tatsächlich abspielt oder erahnen die Komplexität, die technische Geräte mitunter geschickt verbergen. Vor diesem Hintergrund lässt sich das Vertrauen auch als Notwendigkeit seitens des Anwenders betrachten, das unter den gegebenen Umständen nicht bewusst vergeben wird, sondern wie auch die vorschnelle Akzeptanz von AGBs, als alternativlos betrachtet wird. Dem gegenüber steht jedoch auch eine Gesellschaft, die sich mehr und mehr für die technischen Vorgänge der Geräte, die sie nutzt, interessiert. Nicht ohne Grund werden Unternehmen und Marken erfolgreich von der Community zur Verbesserung der Produkte bewegt. Beispielsweise hat der Messengerdienst WhatsApp auf Wunsch der Community am 5. April 2016 eine Ende-zu-Ende-Verschlüsselung implementiert.

Das Vertrauen der Nutzer genießen vor allem aber die Unternehmen und Marken selbst. Fraglich ist nur, wer dafür Sorge trägt, dass dieses Vertrauen nicht missbraucht wird. Wer sorgt sich darum, dass technische Produkte nicht nur zuverlässig, sondern auch tatsächlich vertrauenswürdig sind? Gibt es Instanzen, in denen ethisch bedenkliche Vorhaben abgefangen und zur Diskussion gestellt werden?

Dieser Artikel setzt sich konkret mit der Verantwortung auseinander, die aus dem Engineering selbst hervorgeht. Es geht also um die Frage, was wir eigentlich tun sollten, was nicht und wie die Bemessung davon stattfinden kann. Mit "wir" sind in erster Linie zwar die Software Engineers gemeint, aber auch die gesamten Teams, die in den Entwicklungsprozessen mit eingebunden sind.

Wie sieht das überhaupt aus, wenn Fragen der Ethik in der Softwareentwicklung gar keine oder eine zu geringe Rolle spielen? Hierzu ein paar kleine Beispiele:

Ende 2016 befand sich der Autor mit seinem damaligen Arbeitgeber und einem großen deutschen Hersteller für Haushaltsgeräte, der die Idee eines neuen Features für sein Produkt vorgestellt hat, in einem gemeinsamen Meeting. Die Intention war, eine höhere Klarheit über die Verwendung der Waschmaschinen zu erhalten, um Kunden im Sinne des Predictive Maintenance einen besseren Service liefern zu können. Die Voraussetzung für dieses Feature war, Massen an persönlichen Nutzerdaten zu sammeln und auszuwerten. All den noblen Ideen eines klugen, nachhaltigen und automatischen Wartungssystems zum Trotz standen aber auch die Fragen im Raum: Würden Kunden das für gutheißen? Haben sie wirklich einen Mehrwert davon? Oder... standen die Fragen denn tatsächlich im Raum?

Ganz unabhängig davon, ob, wo und inwiefern die Nutzungsdaten der Gerätebesitzer nun tatsächlich ausgewertet wurden, stellte sich hier also damals die Frage, wie wünschenswert so etwas für die Anwender sein könnte. Denn eine Waschmaschine, die praktisch nur per Smartphone-App zu bedienen ist und sich am bequemsten auch durch diese einstellen lässt (indem die zu waschende Wäsche eingetragen wird), teilt zwangsläufig Daten mit, die Außenstehende nicht unbedingt wissen sollten: Wäschetyp, Waschtemperatur, Grad der Verschmutzung, Waschzeitpunkt und das gewählte Waschmaschinenprogramm.

Aus den erfassten Daten lassen sich interessante Erkenntnisse über den Haushalt gewinnen (Randbemerkung: Was man mit nur ein bisschen Fantasie und Interesse alles aus zunächst scheinbar einfachen Daten herausfinden kann, zeigt David Kriesel beim SpiegelMining sehr anschaulich.) Wie sehen die Waschgewohnheiten aus? Wann wäscht der Haushalt vornehmlich die Wäsche? Wann ist der Haushalt also am ehesten belebt? Wie viele Mitglieder leben in dem Haushalt, und deuten viele Grasflecken auf Kinder hin? Was könnte man davon ableiten, wenn eine Waschmaschine zu einer untypischen Zeit Bettwäsche oder Unterwäsche wäscht? Deuten längere Waschpausen auf einen Urlaub der Bewohner hin? Könnte ein zu häufiges Waschen bestimmter Textilien auf eine verkürzte Lebensdauer der Wäsche hinweisen? Könnte diese Information für Textilien- oder Handelsbranchen interessant sein, um gezielt Werbung zu schalten?

Nachdem Gespräch waren beim Autor allerdings die folgenden Fragen vordergründig: Wie würde ich mich eigentlich als Entwickler einer solchen Software fühlen? Wie kann ich meine Bedenken zum Ausdruck bringen und vielleicht sogar ein Umdenken bewirken? Wie gehe ich mit Erkenntnissen um, die ich gar nicht wissen möchte?