Programmierhaftung

von Richter L. Jaeger

Nachfolgendes Gerichtsurteil betreffs der "Haftung des Programmierers bei unzureichenden Angaben des Bestellers" wurde vom Oberlandesgericht Köln am 22.9.1995 gefällt. Es wurde vom Vorsitzendes Richter am OLG L. Jaeger mitgeteilt und kann unter der Nummer 19 U 65/94 nachgeschlagen werden. Grundlage des Urteils sind die Paragraphen BGB §§ 634, 467, 346 mit folgenden zwei Kernpunkten:

1. Auf die Herstellung individueller Computerprogramme findet Werkvertragsrecht Anwendung (BGHZ 102, 135 = NJW 1988, 406).

2. Der Besteller einer Individualsoftware ist verpflichtet, dem Programmierer die für die Erstellung der Individualsoftware notwendigen Angaben zu machen (Aufgabenstellung). Hält der Programmierer die Angaben für unzureichend, entlastet es ihn nicht, wenn die von ihm erstellte Software Mängel aufweist, die auf unvollständigen Angaben des Bestellers beruhen.

In den nachfolgenden Abschnitten wird der Sachverhalt aus Sicht des Gerichtes sowie Auszüge aus der Urteilsbegründung abgedruckt sowie ein eigener kurzer Kommentar angehängt. Die Abkürzung "Kl." steht dabei für "Klägerin" und "Bekl." für den Beklagten. Die Klägerin ist in diesem Fall die Auftraggeberin einer Individualsoftware, der Beklagte ist der Auftragnehmer bzw. Programmierer. Geliefert wurde ein individuell erstelltes Computerprogramm und demzufolge ein Werk gemäß Werksvertragsrecht.

Zum Sachverhalt

Die Klägerin betreibt eine Krankentransportzentrale und führt dabei im Rahmen eines Hol- und Bringdienstes Transporte im Auftrag der Universitätskliniken K. durch. Die Abrechnung der Transportaufträge erfolgt aufgrund eines Kostenstellenplans der Universitätskliniken mit mehr als 200 Kostenstellen. Dementsprechend muß die Kl. bei Übernahme der Aufträge die jeweiligen Kostenstellen notieren und bei der Abrechnung angeben. Zur Erleichterung dieser Arbeit gab sie mit Vertrag vom 3.6.1992 eine Computer-Software in Auftrag. Gem. Nr. 4 des Vertrages sollte die Kostenstellenliste unter Angabe der entsprechenden Kürzel in das Programm aufgenommen werden. Das Programm wurde vom Beklagten Ende Juni 1992 geliefert. Ein dabei durchgeführter Probelauf ergab keine Beanstandungen. Ab August 1992 rügte die Kl. Mängel des Programms. Mit Schreiben vom 1.9.1992 machte sie geltend, daß ohne Eingabe der Kostenstellen das Programm, insbesondere für die Monatsabrechnung, nicht funktionsfähig sei. Der Beklagte erwiderte daraufhin unter dem 15.9.1992, daß alle in der übergebenen Liste aufgeführten Kostenstellen in Abstimmung mit den Universitätskliniken vollständig enthalten seien; in einem Klammerzusatz heißt es weiter: "soweit vergeben siehe Bettenhaus".

Mit Schreiben vom 2.10.1992 erklärte die Kl., daß das Programm zur Erstellung der Abrechnung ungeeignet sei und verwies unter anderem darauf, daß Leistungen unter dem Kürzel "bh" für Bettenhaus ausgewiesen würden, obwohl eine solche Kostenstelle nicht existiere. Sie forderte den Beklagten zur Nachbesserung bis zum 15.10.1992 auf und fügte dem Schreiben einen Kostenstellenplan bei.

Der Beklagte wies Nachbesserungsansprüche zurück und wandte ein, ein zur Abrechnung geeignetes Programm nicht geschuldet zu haben. Die Kl. ließ daufhin ein neues Programm durch den Programmierer S. erstellen. Mit Schreiben vom 11.11.1992 erklärte sie die Wandelung und forderte vom Bekl. Rückerstattung des gezahlten Preises von 22.800,- DM bis zum 18.11.1992.

Die Klägerin beantragt, den Beklagten zu verurteilen, an sie 22.800 DM Zug um Zug gegen Herausgabe des gemäß dem Auftrag vom 3.6.1992 erstellten Computerprogramms zu zahlen und festzustellen, daß sich der Beklagte in Verzug befindet.

Das Landesgericht hat der Klage stattgegeben. Die Berufung des Beklagten hatte keinen Erfolg.

Aus den Gründen

Zu Recht hat das Landesgericht den Bekl. zur Rückzahlung des Werklohnes gegen Rückgabe des erstellten Programmes nach §§ 634, 467, 346 BGB verurteilt. Der Bekl. hatte es übernommen, ein Computerprogramm speziell für den Hol- und Bringdienst der Kl. zu erstellen. Auf die Herstellung individueller Computerprogramme findet Werkvertragsrecht Anwendung (BGHZ 102, 135 = NJW 1988, 406). Der Bekl. hat das Werk mangelhaft erstellt, so daß die Kl. berechtigt ist, Wandelung des Vertrages zu verlangen.

Das Programm sollte es ermöglichen, die von der Kl. für die Kliniken durchgeführten

Transporte nach den von den Kliniken festegelgten Kostenstellennummern zu erfassen und die Daten per Diskette mit der Verwaltung der Kliniken auszutauschen. Nach der Vertragsurkunde vom 3.6.1992 war der Bekl. unter anderem verpflichtet, die Kostenstellenlisten der Kliniken unter Angabe entsprechender Kürzel in das Programm aufzunehmen (Nr. 4 des Vertrages). Nach dem eigenen Vorbringen des Bekl. und dem Ergebnis der Beweisaufnahme steht fest, daß der Bekl. die Kostenstellen, die die im Bettenhochhaus der Kliniken untergebrachten Kliniken und Funktionsbereiche betreffen, nicht richtig in das Programm eingearbeitet hat. Der Bekl. behauptet, für das Bettenhaus habe es nur eine einzige Kostenstelle gegeben, der die verschiedenen dort untergebrachten Kliniken als Ebenen ohne eigene Kostenstellen zugeordnet gewesen seien. Er hat das Bettenhochhaus einheitlich mit dem Kürzel "bh" versehen und der Kostenstelle 92 13 10 04 zugeordnet. Nach der vom Bekl. selbst eingereichten Kostenstellenliste, Stand 1992, die ihm seinerzeit für die Erstellung des Programms überlassen worden ist, und nach der Aussage des Zeugen V ist diese Behauprung widerlegt. Der Zeuge, der in der Verwaltung der Kliniken beschäftigt ist und dort der zuständige Ansprechpartner war, hat bei seiner Vernehmung Aufbau und Bedeutung der Kostenstellenliste erläutert. Danach weist die Liste ca. 300 Kostenstellen auf. Die bei Auftragsvergabe und bei Bestellung des Programms maßgebliche Liste enthält auf Seiten 1 bis 13 unter der Überschrift "Gebäude, Grundstücke, Außenanlagen" Kostenstellen für die Verwaltung der Grundstücke und Gebäude der Kliniken. Diese Kostenstellen beginnen mit den Ziffern 92. Hierunter befindet sich u.a. eine Kostenstelle "Bettenhaus" mit der Nummer 92 13 10 04. Diese Kostenstelle ist allein für die Grundstücks- und Gebäudeverwaltung bestimmt. Die für die Transporte der Kl. maßgeblichen Kostenstellen für medizinische Leistungen beginnen ab Seite 14 mit dem Zifffern 93. Unter den dort angeführten Einrichtungen gibt es keine Kostenstelle mit der Bezeichnung Bettenhaus. Stationen und Funktionsbereiche, die zum sogenannten Bettenhochhaus gehören, sind in der Liste mit "E" gekennzeichnet und haben eigene Kostenstellennummern.

Nach der Aussage des Zeugen V entfallen etwa 110 Kostenstellen auf Stationen und Funktionsbereiche des Bettenhochhauses. Damit ist die Behauptung des Bekl. widerlegt, daß nur eine einzige Kostenstelle vorhanden gewesen sei. Ebensowenig hat der Zeuge V die Behauptung bestätigt, daß Kostenstellen für das Bettenhochhaus nicht vergeben seien und nicht eingerichtet werden müßten, weil ein Abriß binnen Jahresfrist geplant sei. Vielmehr hat der Zeuge bekundet, daß hiervon nie die Rede gewesen sei - tatsächlich steht das Bettenhochhaus auch heute noch. Lediglich die Sanierung einer Ebene sei geplant gewesen. Nachdem der Bekl. die fragliche Kostenstellenliste selbst vorgelegt hat, aus der sich nach den Erläuterungen des Zeugen V ergibt, daß einzelne Kostenstellen für die Kliniken und Funktionsbereiche des Bettenhochhauses ausgewiesen waren, ist davon auszugehen, daß der Bekl. das nicht mehr bestreitet, so daß der für die gegenteilige Behauptung benannte Zeuge T nicht mehr gehört werden mußte. Andernfalls hätte der Bekl. das nach der Anhörung des Zeugen V klarstellen müssen.

Nach dem Ergebnis der Beweisaufnahme ist davon auszugehen, daß der Bekl. Aufbau und Bedeutung der Kostenstellenliste mißverstanden hat. Er hat den Kliniken und Funktionsbereichen des Bettenhochauses die allein für die Grundstücks- und Gebäudeverwaltung bestimmte Kostenstelle unter der Bezeichnung "Bettenhaus" zugeordnet. Dementsprechend hat der Zeuge V angegeben, daß bei einem Anfang August 1992 ausgehändigten Programmausdruck als Fehler festgestellt worden sei, daß an drei Stellen die Kostenstellennummern der Grundstücks- und Gebäudeverwaltung anstatt der Kostenstellen für medizinische Leistungen aufgeführt gewesen seien. Das Programm sei deshalb von den Kliniken für einen Datenaustausch mit der Kl. nicht akzeptiert worden.

Die fehlerhafte Zuordnung der Kostenstellen stellt einen nicht nur unerheblichen Mangel des Programms dar (§ 634 III BGB). Der dem Bekl. bekannte Zweck des Programms, einen Datenaustausch mit den Kliniken zu ermöglichen, wurde infolge des Fehlers nicht erreicht. Die Kl. hat unbestritten vorgetragen, daß etwa 80% der von ihr erbrachten Transporte auf das Bettenhochaus entfallen, so daß das Programm für sie unbrauchbar war. Die Erheblichkeit des Fehlers wird nicht dadurch berührt, daß nach der Behauptung des Bekl. im Programm ein Untermenü vorhanden ist, mit dem Kostenstellen geändert und neu eingegeben werden können. Nach dem Vertrag war es die Aufgabe des Bekl., die damals in der aktuellen Kostenstellenliste vorhandenen Kostenstellen in das Programm einzuarbeiten. Lediglich spätere Änderungen waren nicht vom Auftrag erfaßt. Der Bekl. kann die Kl. nicht darauf verweisen, die von ihm geschuldete Leistung selbst zu erbringen. Da nach der Aussage des Zeugen V ca. 100 Kostenstellen auf das Bettenhochhaus entfielen, erreichten die fehlenden Kostenstellen einen Umfang, daß auch nicht angenommen werden kann, daß der Mangel mit ganz geringem Aufwand durch die Kl. selbst mit Hilfe des Untermenüs hätte behoben werden können, wofür der Bekl. darlegungspflichtig ist. Ob die Kl. dazu überhaupt in der Lage gewesen wäre, obwohl ein schriftliches Handbuch für das Programm unstreitig nicht geliefert wurde, kann hier offenbleiben.

Das Recht der Kl. auf Wandelung des Vertrages wird auch nicht dadurch ausgeschlossen, daß grundsätzlich der Besteller verpflichtet ist, die erforderlichen Angaben zu den Anforderungen an das Programm zu machen. Der Bekl. hat sich zwar drüber beschwert, daß die Kl. ein von ihm gefordertes Pflichtenheft nicht bereitgestellt habe. Dennoch hat er die weitere Ausführung des Vertrages nicht abgelehnt und hat der Kl. offenbar auch keine Frist für die nach seiner Ansicht erforderliche Mitwirkung gesetzt. Vielmehr hat er sich darauf eingelassen, sich die Information selbst zu verschaffen, indem er wegen des Programms Gespräche mit den

Mitarbeitern der Kliniken geführt hat. Unbestritten und vom Zeugen V bestätigt, sind dabei die Anforderungen an das Programm erörtert, und insbesondere ist auch die Kostenstellenliste erläutert worden. Danach durfte die Kl. davon ausgehen, daß der Bekl. über die erforderlichen Informationen verfügte und jedenfalls nachfragte, wenn noch Unklarheiten bestanden.

Nachdem die Kl. den Bekl. mit Schreiben vom 2.10.1992 mit Frist bis zum 15.10.1992 vergeblich zur Behebung des Mangels aufgefordert hat und der Bekl. zudem eine Nachbesserung ausdrücklich verweigert hat, war die Kl. berechtigt, die Wandelung zu erklären, was diese mit Schreiben vom 11.11.1992 getan hat. Als Folge sind die empfangenen Leistungen zurückzugewähren.

Auch der Antrag auf Feststellung des Annahmeverzuges ist zulässig und begründet. Das Rechtsschutzinteresse für diesen Antrag ergibt sich aus § 756 ZPO. Nachdem das zwischenzeitlich verschwundene Programm in Form der Disketten wiederaufgefunden worden ist, ist die Kl. zur Rückgabe wieder in der Lage, so daß Annahmeverzug durch das fortbestehende Angebot der Kl. zur Rückgabe der Disketten eintreten konnte (§ 297 BGB).

Kommentar

von Rainer Becker

Interessant an diesem Urteil ist m.E. zum einen die Tatsache, daß nicht fehlerhafte Programmierung sondern die Nichterfassung von Stammdaten durch den Softwareentwickler zur kompletten Rückabwicklung des Auftrags unter Rückzahlung des gesamten Honorars führte. Verstanden wurde vom Gericht, daß die Kostenstellen nicht richtig "in das Programm eingearbeitet" wurden und die Erfassung der Stammdaten über eine dafür extra vom Programmierer erstellte Erfassungsfunktion (die aber gar nicht Auftragsbestandteil war, da die spätere Wartungsmöglichkeit der Kostenstellen wohl gar nicht bestellt war) dem Auftraggeber nicht zugemutet werden konnte. Dabei darf vermutet werden, daß der Programmieraufwand für die Wartungsfunktion wesentlich höher gewesen sein dürfte, als die Erfassung von 100 Kostenstellen.

Diese Art der "Gerechtigkeit aus Programmierersicht" nach dem Motto "Ich habe doch extra zusätzlich eine Funktion dafür geliefert, daß die das selbst machen können und im Gegenzug sollen die das gefälligst selbst eingeben" hat vor Gericht also offensichtlich keinen Bestand. Auch der Aufwand für die Programmierung im Vergleich zur Stammdatenerfassung wird von einem Nicht-EDV-erfahrenen Gericht offensichtlich ganz anders bewertet als Fachkundige dies tun würden.

Tödlich für den Auftragnehmer war insbesondere, daß er zwar die Mitarbeit bzw. Zulieferung von Angaben angefordert hat, dafür aber keine Frist setzte und seine Arbeit trotzdem fortsetzte und dabei sich auch noch auf die Eigenbeschaffung der erforderlichen Angaben in Form von undokumentierten Gesprächen einließ. Eben diese undokumentierten Gespräche werden dann zitiert und vom Gericht diverse gemachten Aussagen über den Inhalt dieser Gespräche ("Abriß Bettenhochhaus war geplant") nicht anerkannt wurden.

Peinlich auf der anderen Seite für den Auftragnehmer ist außerdem, daß er sich vorwerfen lassen muß, letztendlich den geringen Aufwand der Stammdatenerfassung kategorisch verweigert zu haben und sich damit in eine rechtliche Position gebracht hat, die zu einer 100%igen Honorarrückzahlung führt. Offensichtlich hat man sich verärgert voneinander getrennt und danach war keiner mehr bereit, auf den anderen einzugehen. Wegen Nichterfassung von Stammdaten einen anderen Programmierer mit der Neuerstellung der Anwendung statt eine Hilfskraft mit der Stammdatenerfassung zu beauftragen, zeigt gleiches Verhalten seitens des Auftraggebers.

Das Urteil selbst zeigt aber, daß bei Werksverträgen der Auftraggeber massiv stärkere Rechte hat als der Auftragnehmer. Dies wird insbesondere von Neueinsteigern im Bereich der Softwareentwicklung gerne übersehen. Hohe Kosten professionell erstellter Software sind schließlich auch auf die Notwendigkeit rechtssicherer Dokumentation und detaillierter Absprachen zurückzuführen und die selbstgerechte Feststellung, man kann etwas deutlich billiger liefern als jemand anders mag nicht immer auf besseren Fähigkeiten beruhen sondern manchmal vielleicht auf Unkenntnis über die zusätzlichen notwendigen Arbeiten im Rahmen einer Softwareentwicklung, die dann einfach nicht mitkalkuliert werden.

Genauso für einen modernen Softwareentwickler unverständlich mag die Tatsache sein, daß nur die Rückgabe der wohl zwischenzeitlich verschlampten Originaldisketten des Programmes dann auch tatsächlich im Gegenzug zur Rückzahlung verpflichtete. D.h. das ein rein elektronisch existierendes Werk physisch auf den ursprünglichen Lieferdisketten zurückgegeben werden muß.

Zusammenfassend kann nur davor gewarnt werden, Aufträge ohne klare Auftragsbeschreibung anzunehmen oder gar zu beginnen. Auftragsrahmendaten, auch wenn nur mündlich mitgeteilt, müssen in irgendeiner Form dokumentiert werden, damit man sich später als Programmierer darauf wieder beziehen kann. Desweiteren muß der Auftraggeber auf Versäumnisse und Liefernotwendigkeiten seinerseits immer rechtzeitig, deutlich und schriftlich hingewiesen werden. Im Notfall müssen die Arbeiten eingestellt werden. Und ein bißchen Luft für Nachbesserungsarbeiten, und seien sie auch für einen Softwareentwickler wenig einleuchtende Nachforderungen, muß immer mit einkalkuliert werden. D.h. zu jeder Auftragskalkulation gehören am Schluß zumindest verschiedene prozentuale Aufschläge für Nacharbeiten, Nachdokumentation, Nachbesserung und ähnliches. Fraglich ist dabei natürlich, ob ein kleiner Betrieb sich die Erstellung von kostenlosen Angeboten für individuelle Softwareentwicklung wirklich leisten kann, da es sich dabei oft um sehr umfangreiche Arbeiten handelt, die wasserdicht gestaltet werden müssen. Sinnvoller scheint die Abrechnung der Angebotserstellung mit Analyse und Design der Software als Dienstvertrag mit ggf. anschließender Anrechnung auf den Auftragswert des Werkes zu sein.