| Aktuelles | Blog | Ethikkodizes für die Softwareentwicklung

Ethikkodizes für die Softwareentwicklung

Ethischen Kodizes im Kontext der Softwareentwicklung mangelt es an praktischer Anwendbarkeit, da sie auftretende Wertekonflikte nicht lösen können. Unser Ansatz „Ethische Deliberation für agile Softwareprozesse“ (EDAP) greift ethische Fragestellungen bereits im Entwicklungsprozess auf, um die Lücke zwischen Theorie und Praxis zu schließen.


Softwaresysteme nehmen eine immer wichtigere Rolle in unserem Leben ein. Vor allem Systeme, die Entscheidungen über hochbrisante Themen wie zum Beispiel die Erteilung von Bewährungsauflagen oder Kreditwürdigkeit unterstützen, werden immer häufiger zum Gegenstand der öffentlichen Debatte. Der Ruf nach „ethisch einwandfreier” Software wird lauter, je stärker wir uns auf softwaregestützte Entscheidungen verlassen.

Softwareingenieurinnen und -ingenieure wie auch Unternehmen befinden sich zunehmend in einer Situation, in der sie für unerwünschte Ergebnisse und Verzerrungen verantwortlich gemacht werden, die sich aufgrund der Verwendung von Software oder der Art und Weise, wie diese entwickelt wurde, ergeben. Es erscheint zwar unangemessen und kurzsichtig, die Verantwortung vollständig auf die Entwicklerinnen und Entwickler abzuwälzen, dennoch fühlen sich die Softwarefirmen mittlerweile stärker verpflichtet, sich mit diesen Fragen zu befassen und eine ethisch fundierte Entwicklung zu fördern.

Dies trifft vor allem aus zwei Gründen zu: Erstens sehen sich die Unternehmen mit Rückschlägen durch Software konfrontiert, welche ethisch fragwürdige Eigenschaften aufweist – dies sowohl in rechtlicher Hinsicht als auch in Bezug auf ihren Ruf als vertrauenswürdiger Akteur in der Gesellschaft. Zweitens haben Unternehmen und ihre Mitarbeiterinnen und Mitarbeiter durchaus auch eine intrinsische Motivation, bessere und ethisch einwandfreie Software zu entwickeln.

Ethik- und Verhaltenskodizes als Orientierungshilfe?

Softwaresysteme sind inhärent komplex: Sie bestehen aus unterschiedlichen Komponenten, wie zum Beispiel dem Backend und dem Frontend, die ihrerseits bereits normativen Ansprüchen genügen müssen. Zudem erzeugen sie in ihrer Kompositionalität erneut weitere ethische Anforderungen. Zuletzt gilt es auch noch den Einsatz der Softwaresysteme zu berücksichtigen, da es in der Anwendung zu weiteren normativen Spannungen kommen kann. Entsprechend ist die Entwicklung normativ angemessener Software keineswegs ein leichtes Unterfangen, das sich durch Appelle lösen ließe, die Entwicklerinnen und Entwickler mögen doch bitte „ethischer“ und „besser“ werden.

Komplexe Systeme zeichnen sich ja gerade dadurch aus, dass nicht sämtliche Konsequenzen ex ante bekannt sind und bestimmte kontraintuitive Wechselwirkungen und Anreize erst in der späteren Anwendung eines Produktes entstehen und sichtbar werden. Eine populäre Möglichkeit, Softwareingenieurinnen und -ingenieure dabei zu unterstützen, ethische Fragen zu identifizieren und zu diskutieren, stellt die Veröffentlichung von Ethik- und Verhaltenskodizes dar, die der Ingenieurin und dem Ingenieur sowie dem Management der Unternehmen eine Orientierungshilfe sein sollen.

Verhaltenskodizes, die zum Beispiel von Institutionen wie dem IEEE, der ACM, supranationalen Institutionen wie der EU High Level Expert Group on AI und UNDP oder der Hightechindustrie selbst herausgegeben werden, versuchen eine zentrale, (selbst-)regulierende Rolle im Diskurs um die Entwicklung ethisch angemessener Softwaresysteme einzunehmen. Sie stellen ein mehr oder weniger vollständiges und ausgereiftes Konglomerat verschiedener normativer Positionen, Werte oder Absichtserklärungen dar, die im Prozess der Softwareentwicklung in adäquater Form umgesetzt werden sollen.

Es braucht mehr als Ethik- und Verhaltenskodizes für den Umgang mit Werten und Prinzipien in der Softwareentwicklung

Wie bereits erwähnt, gibt es in der Tat verschiedene und nachvollziehbare Gründe, warum es sinnvoll erscheinen mag, Ingenieurinnen und Ingenieuren sogenannte Ethik- oder Verhaltenskodizes zur Verfügung zu stellen. Sie sollen denen, die mit ethisch relevanten Fragen konfrontiert sind, als Orientierungshilfe dienen und ihnen einen Überblick über wünschenswerte Werte und Prinzipien geben.

Die Mehrheit der Kodizes ist sich über zentrale Werte wie Datenschutz, Transparenz und Sicherheit einig. Uneinigkeit entsteht jedoch, sobald diese Abstraktionsebene verlassen wird und der technische Designprozess zwingt, ins Detail zu gehen. Darüber hinaus gibt es erhebliche Unterschiede bei der Priorisierung von Werten und der Ableitung von Schwerpunkten.

Hier stellt sich die Frage: Wenn es eine breite Übereinstimmung über die Grundwerte gibt, was ist dann der Grund dafür, dass verschiedene Kodizes in ihren Aussagen voneinander abweichen?

Den Kodizes mangelt es an praktischer Anwendbarkeit

Ein Erklärungsansatz ist, dass dies vor allem auf die Beschaffenheit der Werte selbst zurückzuführen ist, also auf ihre Unterbestimmtheit. Diese Unterbestimmtheit ist wiederum direkt mit dem Problem verbunden, dass Kodizes kaum in der Lage sind, konkrete normative Orientierung in der Softwareentwicklung zu geben.

Grundsätzlich beinhalten die meisten Kodizes Werte, die für den ethischen Umgang mit Software zentral sind und kaum vernünftig angefochten werden können. Beispiele sind die Aufforderung zur Achtung der Menschenwürde oder der Anspruch, Technologie im Dienste des Menschen zu entwickeln (humanistische Perspektive). Obwohl wir die Normativität dieser Werte keineswegs infrage stellen oder relativieren wollen und diese Werte durchaus normative Geltung beanspruchen können, sollte klar sein, dass eine Reduktion eines ganzen Wertesystems auf diese zentralen (Meta-)Normen weder theoretisch hinreichend determiniert ist noch zu sinnvollen praktischen Implikationen führt. Zudem lassen sich aus diesen zentralen Werten nicht alle anderen Werte deduktiv ableiten. Vielmehr neigen sie dazu, die Rolle von allgemeinen Aussagen zu übernehmen, die für sich allein genommen keine konkrete und damit praktische Anleitung geben können.

Folglich mangelt es Kodizes an praktischer Anwendbarkeit, weil sie keine normative Orientierung für spezifische ethische Herausforderungen bieten, die regelmäßig auftreten – das heißt: Sie erreichen nicht das, wofür sie ursprünglich gedacht waren. Erschwerend kommt hinzu, dass aufgrund der schieren Fülle unterschiedlicher Werte, die in den Kodizes vorgeschlagen werden, leicht (irgend)ein passender ethischer Wert zur Rechtfertigung eines möglichen Handelns gefunden werden kann, gerade weil keine Hierarchie der Werte im Hinblick auf den konkreten und spezifischen Fall offensichtlich ist.

Umsetzung von Werten als Kompromiss: Privatsphäre vs. Transparenz

Viele Kodizes enthalten eine Vielzahl von Werten, die lediglich als eine Art Aufzählung dargestellt werden. Ohne ausreichende Konkretisierung, Bezugnahme, Kontextualisierung und Erklärung sind Softwareingenieurinnen und -ingenieure auf sich allein gestellt, um die Einhaltung jedes einzelnen spezifischen Wertes abzuwägen. Die Betonung liegt hier auf „abwägen“.

Die ontologische Beschaffenheit der Werte führt zu Wertespannungen, die sich in der Praxis ergeben. In der Softwareentwicklung entstehen somit Konflikte zwischen zu berücksichtigenden Werten wie Privatsphäre und Transparenz oder Autonomie/Freiheit und Sicherheit – um nur einige zu nennen. In den meisten Fällen muss die Umsetzung von Werten als ein Kompromiss gesehen werden. So ergibt sich beispielsweise zwischen Transparenz und Privatsphäre ein Konflikt: Beide Werte werden in der Mehrzahl der Kodizes genannt, dennoch ist es nicht möglich, sie gleichzeitig in vollem Umfang zu berücksichtigen.

Ab einem gewissen Punkt wird eine Erhöhung des einen Wertes notwendigerweise die Abnahme des anderen Wertes zur Folge haben. So führt ein Maximum an Transparenz zur Preisgabe der Privatsphäre. Die folgende Abbildung zeigt eine grafische Darstellung der möglichen Kompromisse der beiden Werte.

Solange sich das zu entwickelnde Produkt in der rechten oberen Ecke der Grafik befindet, kann man das technische Objekt ethisch verbessert entwickeln, indem man entweder den einen, den anderen oder sogar beide Werte gleichzeitig erhöht. Bis zu einem gewissen Punkt kann man sich näher an die jeweilige Achse des Koordinatensystems in Richtung des Ursprungs bewegen. Sobald die Kurve erreicht ist, wird es jedoch unmöglich, den einen Wert zu erhöhen, ohne den anderen zu verringern (Pareto-effizienter Zustand oder Pareto-Optimum). Es ist sicherlich unumstritten, dass das Ziel des Softwaredesigns ein Produkt sein sollte, das die Werte, die wir in Betracht ziehen wollen, effizient optimiert. Es ist jedoch keineswegs klar oder offensichtlich, welcher Punkt auf der Linie, das heißt welcher der vielen möglichen Kompromisse, umgesetzt werden sollte. Aus der Mathematik wissen wir, dass auf einer Strecke unendlich viele Punkte liegen.

Ethische Überlegungen und moralische Entscheidungsfindung als entscheidender Ansatz

Wie entscheiden wir uns nun für die richtige Abwägung sich widerstrebender Werte? Genau an diesem Punkt kommen ethische Überlegungen und moralische Entscheidungsfindung ins Spiel. Kodizes bieten keine Hilfe zur Beantwortung dieser Frage an. Der gemeinsame Kodex von ACM und IEEE stellt zum Beispiel fest:

„The Code as a whole is concerned with how fundamental ethical principles apply to a computing professional’s conduct. The Code is not an algorithm for solving ethical problems; rather it serves as a basis for ethical decision-making“ (ACM, IEEE).

Solange von einer Win-win-Situation ausgegangen werden kann, können Ethikkodizes zwar angewandt werden, sind aber von geringem Nutzen. Sobald aber zwischen verschiedenen Optionen entschieden werden muss, müssen legitime ethische Gründe und Werte gegeneinander abgewogen werden. Es ist daher unklar, was es bedeuten soll, dass Kodizes als Grundlage für ethische Entscheidungsfindung dienen, während in Wirklichkeit die normativen Deliberationen des Entwicklerteams die ethische Ausgestaltung technischer Objekte begründen.

Daher ist es unerlässlich, diese ethischen Überlegungen zu fördern und in den Entwicklungsprozess von Software zu integrieren. Dies wollen wir mit unserem Ansatz „Ethische Deliberation für agile Softwareprozesse“ (EDAP) tun.

Dieser soll dazu beitragen, technische Objekte gezielt normativ auszurichten, indem er einen zielgerichteten, rationalen Umgang mit Werten in der Technikgestaltung ermöglicht. Wir konzentrieren uns daher auf die Identifikation von Werten, ihre Wünschbarkeit und schließlich ihre Integration in Softwaresysteme.

Die vom bidt veröffentlichten Blogbeiträge geben die Ansichten der Autorinnen und Autoren wieder; sie spiegeln nicht die Haltung des Instituts als Ganzes wider.