Seminar-Vortrag: Ethik in der Softwareentwicklung Franka Schuster, 29.05.2009 Lehrveranstaltung Softwarezuverlässigkeit Lehrstuhl Datenstrukturen und Softwarezuverlässigkeit Brandenburgische Technische Universität Cottbus Misstrauen in den Datenschutz als Indiz für das Erwarten unethischen Verhaltens Quelle: Heise-Artikel vom 7.05.2009 mit dem Titel „Meinungsforscher: Viel Misstrauen in der Bevölkerung beim Datenschutz“ [1] Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 1 / 19 Gliederung 1. Begriffsklärung 2. Wozu Ethik in der Softwareentwicklung? 3. Ethische Leitlinien – ein Beispiel 4. Ethik sicherheitskritischer Systeme 5.1 . Zu vermeidende Verhaltensweisen 5.2 . Notwendige Bestandteile 5. Individual- vs. Institutionsethik Zusammenfassung Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 2 / 19 1. Begriffsklärung Ethik philosophische Disziplin Aristoteles (4. Jh. v. Chr.): - wissenschaftliche Beschäftigung mit Gewohnheiten, Sitten, Gebräuchen - menschliches Handeln auf Basis vernünftiger, theoretischer Reflexion statt nur auf Konventionen, Traditionen Heute: - Aufstellen von Kriterien für gutes und schlechtes Verhalten - Bewertung seiner Motive und Folgen Professionelle Ethik Ethik im Zusammenhang mit professioneller Ausübung einer Tätigkeit (Berufsethik) Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 3 / 19 SW-Entwicklung | Leitlinien-Bsp. | sicherheitskr. Systeme | Individual- / Institutionsethik | Fazit 2. Wozu Ethik in der Softwareentwicklung? zentrale und wachsende Bedeutung von Softwaresystemen in heutiger Gesellschaft beeinflusst durch Softwareentwickler via Analyse, Beschreibung, Entwurf, Entwicklung, Zertifizierung, Wartung, Testen Softwareentwickler haben enorme Möglichkeiten: - Gutes zu tun oder Schaden anzurichten - anderen zu ermöglichen, ~ - andere zu beeinflussen, ~ Vertrauen der Gesellschaft in Professionalität des Berufsstandes Softwareentwickler haben enorme Verantwortung: - direkte Verantwortung - indirekte Verantwortung Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 4 / 19 SW-Entwicklung | Leitlinien-Bsp. | sicherheitskr. Systeme | Individual- / Institutionsethik | Fazit 3. Ethische Leitlinien – ein Beispiel Ethische Leitlinien Was ist das Ziel? Identifizierung von und Konfrontation mit ethisch korrektem Verhalten durch Festlegung und Festhalten ethischer Normen Wer ist angesprochen? u. a. Berufstätige, Pädagogen, Studenten, Führungskräfte, Vorgesetzte, politische Entscheidungsträger Durch wen festgesetzt? u. a. Firmen, Berufsvereinigungen, politische Gremien Wie zu vermitteln? initiale Ausbildung, Lehrgänge, Material für Selbststudium Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 5 / 19 SW-Entwicklung | Leitlinien-Bsp. | sicherheitskr. Systeme | Individual- / Institutionsethik | Fazit 3. Ethische Leitlinien – ein Beispiel Beispiele für ethische Leitlinien Gesellschaft für Informatik (GI): „Ethische Leitlinien der Gesellschaft für Informatik“ (1995) [2] British Computer Society (BCS): „Code of Good Practice“ (2004) [3] SAP: „Geschäftsgrundsätze für Mitarbeiter der SAP AG“ (2006) [4] Oracle: „Code of Ethics and Business Conduct“ (2009) [5] Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 6 / 19 SW-Entwicklung | Leitlinien-Bsp. | sicherheitskr. Systeme | Individual- / Institutionsethik | Fazit 3. Ethische Leitlinien – ein Beispiel [6] Beispiel: „Softwareentwicklungskodex für ethische und professionelle Vorgehensweise“1 der ACM2 und IEEE-CS3 aktuelle Version 5.2 stammt aus dem Jahr 1999 Zweck: Hilfestellung für Softwareentwickler, die Softwareentwicklung zu einem nutzbringendem und angesehen Beruf zu machen 8 Prinzipien, die jeweils in 6 – 15 konkreten Anweisungen erläutert werden ___ 1 Originaltitel: „Software Engineering Code of Ethics and Professional Practice“) 2 Abk. für „Association for Computing Machinery“ 3 Abk. für „Institute of Electrical and Electronics Engineers – Computer Society “ Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 7 / 19 SW-Entwicklung | Leitlinien-Bsp. | sicherheitskr. Systeme | Individual- / Institutionsethik | Fazit 3. Ethische Leitlinien – ein Beispiel [6] Beispiel: „Softwareentwicklungskodex für ethische und professionelle Vorgehensweise“1 der ACM2 und IEEE-CS3 „Softwareentwickler sollen ...“ Prinzip 1: Öffentlichkeit „ ... in Übereinstimmung mit dem öffentlichen Interesse handeln.“ Prinzip 2: Auftrag- und Arbeitgeber „ ... im besten Interesse ihres Auftrag- und Arbeitgebers ohne Verletzung von Prinzip 1 handeln.“ Prinzip 3: Produkt „ ... gewährleisten, dass ihre Produkte und Veränderungen an diesen den höchst möglichen fachmännischen Standards genügen.“ Prinzip 4: Urteilsbildung „ ... Seriosität und Unabhängigkeit bei beruflichen Entscheidungen behalten.“ Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 8 / 19 SW-Entwicklung | Leitlinien-Bsp. | sicherheitskr. Systeme | Individual- / Institutionsethik | Fazit 3. Ethische Leitlinien – ein Beispiel [6] Beispiel: „Softwareentwicklungskodex für ethische und professionelle Vorgehensweise“1 der ACM2 und IEEE-CS3 „Softwareentwickler sollen ...“ Prinzip 5: Führung „ Führungskräfte in der Softwareentwicklung sollen sich ethischen Vorgehensweisen bei ihren Aufgaben verpflichten und sie propagieren.“ Prinzip 6: Berufsstand „ ... die Unversehrtheit und das Ansehen ihres Berufes steigern ohne Verletzung von Prinzip 1.“ Prinzip 7: Kollegen „ ... ihren Kollegen gegenüber fair und unterstützend sein.“ Prinzip 8: eigene Person „ ... sich lebenslang berufsbezogen weiterbilden und einen ethischen Bezug zu ihrem beruflichen Handeln aufbauen.“ Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 9 / 19 SW-Entwicklung | Leitlinien-Bsp. | sicherheitskr. Systeme | Individual- / Institutionsethik | Fazit 3. Ethische Leitlinien – ein Beispiel [6] Beispiel: „Softwareentwicklungskodex für ethische und professionelle Vorgehensweise“1 der ACM2 und IEEE-CS3 Ausgewählte Anweisungen: 3.03. 6.03. „Identifiziere, definiere und setze dich mit ethischen, wirtschaftlichen, rechtlichen und ökologischen Aspekten deiner aktuellen Arbeit auseinander.“ „Erweitere das allgemeine Fachwissen über Softwareentwicklung durch angemessene Beteiligung in Berufsvereinigungen, Veranstaltungen und Veröffentlichungen.“ 7.03. „Erkenne die Arbeit anderer uneingeschränkt an und vermeide übermäßige Anerkennung.“ 8.02. „Verbessere deine Fähigkeiten, sichere, zuverlässige und nützliche Qualitätssoftware zu angemessenen Kosten und in angemessener Zeit zu entwickeln.“ Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 10 / 19 SW-Entwicklung | Leitlinien-Bsp. | sicherheitskr. Systeme | Individual- / Institutionsethik | Fazit 4. Ethik sicherheitskritischer Systeme Sicherheitskritisches System System, das Funktionen mit Sicherheitsverantwortung (Funktionen, deren Versagen gefährliche Auswirkungen haben können) wahrnimmt Was gilt für die Ethik in solchen Systemen? Nichtbeachtung oder falsche Priorisierung ethischer Regeln kann gesundheitlichen Schaden, sogar Todesfälle nach sich ziehen zur Realisierung möglichst großer Sicherheit des Systems müssen alle möglichen Hilfsmittel (eben auch ethische Leitlinien) angewendet werden Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 11 / 19 SW-Entwicklung | Leitlinien-Bsp. | sicherheitskr. Systeme | Individual- / Institutionsethik | Fazit 4. Ethik sicherheitskritischer Systeme 5.1. Zu vermeidende Aspekte [7] (1/2) 1) Effekthascherei kein Anwenden von Techniken nur um Unternehmensführung oder Gruppenzwang zu befriedigen 2) Übertreibung keine Technik aufgrund der Werbung als Allheilmittel betrachten 3) Wunschdenken menschliche Argumentationsfähigkeit nie durch blinden Glauben an Techniken ersetzen 4) Oligarchie möglichst viele möglichst schnell an Expertenwissen neuer Methoden teilhaben lassen Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 12 / 19 SW-Entwicklung | Leitlinien-Bsp. | sicherheitskr. Systeme | Individual- / Institutionsethik | Fazit 4. Ethik sicherheitskritischer Systeme 5.1. Zu vermeidende Aspekte [7] (2/2) 5) Vergänglichkeit Einsatz bewährter Methoden und Entwurf in Hinblick auf Wiederverwendbarkeit 6) Informationsflut zu detaillierte Dokumentation genauso schlecht wie zu wenig abstrakte Beschreibungen erklären 7) Abweichungen früher Einsatz formaler Methoden verhindert zu lange Entwicklungszeiten und ungenaue Umsetzung von Anforderungen Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 13 / 19 SW-Entwicklung | Leitlinien-Bsp. | sicherheitskr. Systeme | Individual- / Institutionsethik | Fazit 4. Ethik sicherheitskritischer Systeme 5.2. Notwendige Bestandteile [7] (1/2) 1) Wissenschaftliches Fachwissen theoretisches Wissen aus initialer Ausbildung und Weiterbildungen 2) Technische Fertigkeiten aufgrund Erfahrungen durch wiederholtes Anwenden des wissenschaftlichen Wissens 3) Praktische Weisheit Bewusstsein über eigene Grenzen, Grenzen der Methoden, Grenzen der Produkte Besonnenheit und Voraussicht Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 14 / 19 SW-Entwicklung | Leitlinien-Bsp. | sicherheitskr. Systeme | Individual- / Institutionsethik | Fazit 4. Ethik sicherheitskritischer Systeme 5.2. Notwendige Bestandteile [7] (2/2) 4) Zusammenspiel von Intelligenz und Intuition da absolute Formalisierung jedes einzelnen Schrittes der Softwareentwicklung zu komplex, muss das Anwenden formaler Methoden durch Intuition ergänzt werden 5) Klugheit im Konkreten unkonventionelle Techniken und Lösungen sollten in bestimmten Fällen gängigen Methoden vorgezogen werden Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 15 / 19 SW-Entwicklung | Leitlinien-Bsp. | sicherheitskr. Systeme | Individual- / Institutionsethik | Fazit 5. Individual- vs. Institutionsethik [8] [9] Individualethik Ethik der Person Inhalt: Gewissen, Verantwortung, Motive, Verhalten des Einzelnen alle bisher gesehen Beispiele Institutionsethik Ethik der Institution (Vereinigung, Unternehmen, ... ) Inhalt: ethische Rahmenbedingungen kollektiven Handelns, die dem gerechten Zusammenleben aller dienen Bedeutung der Institutionsethik steigt, die der Individualethik sinkt, da - Zunahme der Anonymität der Mitarbeiter eines Unternehmens nach außen - individualethische Ansätze führen zu Dilemmata mit unternehmerischen Absichten Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 16 / 19 SW-Entwicklung | Leitlinien-Bsp. | sicherheitskr. Systeme | Individual- / Institutionsethik | Fazit 5. Individual- vs. Institutionsethik [8] [9] Meinungen PRO Institutionsethik Rafael Capurro nach Günter Ropohl: Der "korporative Akteur" und nicht mehr (so sehr) das einzelne Mitglied ist das moralische Subjekt, denn das Ergebnis korporativen Handelns deckt sich nicht mit der Summe individuellen Handelns. CONTRA Institutionsethik Walther Zimmerli: „Institutionen sind [...] keine Subjekte in dem Sinne, dass sie sich durch den Bezug zur eigenen Existenz diese selbst formen könnten. Ihre Quasi-Subjektivität bedeutet lediglich [...], dass sie rechtlich haftbar, aber eben nicht moralisch verantwortlich gemacht werden können.“ [10] Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 17 / 19 SW-Entwicklung | Leitlinien-Bsp. | sicherheitskr. Systeme | Individual- / Institutionsethik | Fazit Zusammenfassung aus dem enormen Einfluss von Softwareentwicklern auf in allen Lebensbereichen Einzug haltende Softwaresysteme wächst deren Verantwortung ethische Leitlinien sind ein Hilfsmittel für Softwareentwickler, um mit dieser Verantwortung umgehen zu können, indem sie ethisch korrektes Verhalten identifizieren durch Verbindlichkeit für viele den Einzelnen im Zweifelsfall zu ethisch korrektem Handeln bestärken ihn zu höherer Professionalität in seinem Beruf verhelfen Ethik und ethische Leitlinien sind wie in allen anderen Berufen und Lebensbereichen unentbehrlich in der Softwareentwicklung Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 18 / 19 Quellennachweis [1] Heise Online (7.5.2009): „Meinungsforscher: Viel Misstrauen in der Bevölkerung beim Datenschutz“. URL: http://www.heise.de/newsticker/Meinungsforscher-Viel-Misstrauen-in-der-Bevoelkerung-beimDatenschutz--/meldung/137486 [Stand 28.05.2009] [2] Gesellschaft für Informatik (1995): „Ethische Leitlinien der Gesellschaft für Informatik“. URL: http://www.iig.uni-freiburg.de/gi/ell [Stand 27.05.2009] [3] British Computer Society (2004): „Code of Good Practice“. URL: http://www.bcs.org/server.php?show=conWebDoc.1589 [Stand 27.05.2009] [4] SAP (2006): „Geschäftsgrundsätze für Mitarbeiter“. URL: http://www.sap.com/germany/about/governance/pdf/CoBC_deutsch.pdf [Stand 27.05.2009] [5] Oracle (2009): „Code of Ethics and Business Conduct“. URL: http://www.oracle.com/corporate/community/governance/cebc.pdf [Stand 28.05.2009] [6] Association for Computing Machinery (1999): „Software Engineering Code of Ethics and Professional Practice“. URL: http://www.acm.org/about/se-code/ [Stand 28.05.2009] [7] Bowen, Jonathan: „The Ethics of Safety-Critical Systems“. In: Communications of the ACM, Vol. 43, No. 4 (April 2000), S. 91 – 97 [8] Institut für Ethik in der Praxis (2008): „Institutionenethik / Organisationsethik“. URL: http://www.ethik-inder-praxis.de/institutionenethik.htm [Stand 26.05.2009] [9] Capurro, Rafael (2006): „Zur Frage der professionellen Ethik“. URL: http://www.capurro.de/code.htm [Stand 28.05.2009] [10] Zimmerli, Walther Ch. (1991): Verantwortung des Individuums - Basis einer Ethik von Technik u. Wissenschaft. In: H. Lenk, M. Maring, Hrsg.:Technikverantwortung. Frankfurt a. M.1991.S.79-89. Ethik in der Softwareentwicklung – Franka Schuster – 29.05.2009 19 / 19