Haftung
“Haften”, sagt der Duden, “ist die Verantwortung für den Schaden eines anderen.” Das gibt es in ganz vielen Bereichen: Ob ich mir an der verdorbenen Lieferpizza den Magen ruiniere oder mein Herdanschluss brennt, weil der Elektriker ein zu dünnes Kabel verwendet hat… Zack, Haftung. Heise zitiert einen Herrn Professor mit dem Gedanken, dass es zukünftig auch “Haftung für Informatiker geben” könne. Moment mal, gibt es das nicht schon? Und wofür soll wer überhaupt haften?
Wer heute einen Schaden verursacht, muss zumeist dafür aufkommen, wenn nachzuweisen ist, dass der Verursacher fehlerhaft oder fahrlässig gearbeitet hat. Nach dem Radwechsel in der Autowerkstatt überholt mich eines meiner Hinterräder? Um zu verhindern, dass das für die Werkstatt teuer wird, schreibt diese zumeist vor, dass ich nach 50 gefahrenen Kilometer den Sitz der Muttern kontrollieren soll. Wenn ich das nicht mache, ist ein daraus folgender Schaden mein Problem.
“Schrauben lose, Reifen ab” ist einfach. In der IT ist das weit komplexer, nicht zuletzt, weil die Systeme komplex sind und aus unglaublich vielen1 Einzelteilen bestehen.2 Muss ich als Entwickler nur für meinen Code Verantwortung übernehmen, oder für das Zusammenspiel aller Komponenten? DevOps strebt Ende-zu-Ende-Verantwortung der Teams an, was nichts anderes bedeutet, als dass zB das Team “Abrechnung” Verantwortung übernehmen soll für das Modul “Abrechnung” - aber aus Sicht des Nutzers. Was der Nutzer aber als “funktionierendes Einzelsystem” erlebt, ist in Wirklichkeit die Summe des Zusammenspiels zahlreicher Subsysteme. So sehr mir der Gedanke gefällt, dass man sich am Gesamtergebnis aus Nutzersicht messen lässt: Ich kann keinem Teammitglied einen Vorwurf machen, der hier angesichts unkalkulierbarer Risiken ein ungutes Gefühl hat.
Selbst wenn ich mich strikt auf meinen Code beschränke, ist die Situation immer noch nicht klar. Welche Regeln gelten, was ist verbindlich? Wie soll ich als Entwickler für etwas haften, wenn meine Firma die Anweisung gibt, dass das Ergebnis bereits gut genug sei, das Projekt spät und man doch bitte sich nicht so anstellen solle? Welcher Level von Qualität ist tatsächlich nicht mehr verhandelbar?
Ich erlebe in letzter Zeit häufiger, dass Teammitglieder nach Richtlinien fragen, nach Leitplanken. Ich glaube, da spricht nicht der Wunsch nach Kontrolle, nicht Ideenlosigkeit. Stattdessen verstehe ich das als “Hilferuf”, als Frage: “Was genau erwartest du von mir, wie soll ich arbeiten, damit ich mir keinen Vorwurf zu machen habe?”
Ich habe schon mehrfach darüber geschrieben, dass Dinge immer komplexer werden. Es wäre ein Fehler, dies einfach laufen zu lassen, und die Teams damit zu überfordern. IT Management muss zuerst Verantwortung übernehmen und darf diese nicht ausschließlich an die Entwickler durchreichen. Wir, das Mittel- und Topmanagement, müssen endlich Vorgaben machen für Themen wie
- Allgemeine Akzeptanzkriterien
- Anforderungen an Dokumentation
- Umgang mit Software von Dritten (auch: Opensource)
- KPI zur Softwarequalität
- Patching Policy
Das (und sicher mehr) sind keine Techie-Themen, mit denen die Damen und Herren IT-Manager sich nicht befassen müssen, weil sie ja (hihihi!) davon “nichts verstehen”. Insofern die Leistung eines Unternehmens auch durch IT-Systeme erbracht wird, muss das Unternehmen dafür haften und tut gut daran, sich genau zu überlegen, wie und wofür man haften kann. Das ist zuerst! ein Thema für die Geschäftsführung, die sich aber nicht selten zögerlich damit befasst, weil: Lästig. Anstatt einen unmittelbar für IT verantwortlichen Menschen in Geschäftsführung oder Vorstand zu etablieren, wird das Thema als “Kostenblock” nicht selten weggeschoben: In die Ablauforganisation, in den Bereich “Finanzen”, unter “diverses”. Sollen die Techies doch selber schauen, wie sie klar kommen, Hauptsache es wird nicht ständig teurer.
Gleichzeitig erfinden wir immer neue Dimensionen der IT-Komplexität: Cloud, IoT und KI machen sich gut auf Strategiefolien, tragen aber dick auf. Multi-Channel und offene APIs machen das Leben nicht einfacher. Outsourcing eröffnet nochmal komplett neue Fragestellungen, weil plötzlich zur IT-Haftung noch das Werk- und Dienstvertragsrecht kommt. Datenschutz und nicht zuletzt das Urheber- und Markenrecht sind Fässer ohne Boden.
Die Verantwortung für solche Komplexität darf nicht “irgendwo” bei den Entwicklerteams landen. Nicht “Haftung für Informatiker” ist nötig, denn die gibt es im Zweifel längst. Vielmehr braucht es ein Verständnis der Unternehmensführung und nachfolgendem Management für die sich hier ergebenden Fragen, und die Bereitschaft, damit professionell umzugehen. Da die meisten Vorstände aber eher Jura oder BWL studiert haben und nicht Informatik, sehe ich den Ball bei diesen Fachbereichen: Wenn wir alles digitalisieren und vernetzen, müssen auch Juristen und BWLer, Marketing- und Finanzmenschen davon etwas wissen.
“Wissen sie, von Computern verstehe ich nichts” zählt dann nicht mehr als Ausrede.
Moderne Frontend-Software verwendet gerne tausende von Untermodulen. Dazu kommt Infrastruktur und Security-Komponenten.
Natürlich gibts noch viele andere komplexe Systeme. Damit ein Flugzeug fliegt, ist das Zusammenspiel zahlloser Systeme nötig. In der Medizin geht es auch nicht nur um “wenn a, dann b”. Und viele andere mehr…