Blog

HomeBlogHerausgabe des Quellcodes bei Embedded Software?

Herausgabe des Quellcodes bei Embedded Software?

Ob bei der Überlassung von Software der Erwerber einen Anspruch auf Herausgabe des Quellcodes hat, ist auch im Jahr 2016 noch teilweise… „umstritten“, wie wir Juristen gerne sagen. Insbesondere bei der Entwicklung von Individualsoftware kommt es dabei auf eine sehr klare Vertragsgestaltung an.

Da Dennis und Andreas letztens mit dieser Materie beschäftigt waren, nehmen wir dies als Anlass ein bisschen darüber zu referieren – beginnend mit den Grundlagen:

650291_web_R_K_B_by_Markus Vogelbacher_pixelio.de

Markus Vogelbacher / pixelio.de

Quellcodes, Sourcecodes, alles Code?

Der Quell- oder Sourcecode ist – einfach ausgedrückt – die Grundlage eines Programmes in einer (relativ) verständlich Programmiersprache. Ein Programmierer schreibt ein Programm üblicherweise mithilfe einer Programmiersprache in Textform, welches dann mit einem Compiler in eine für Computer verständliche Maschinensprache übersetzt wird. Dieses Programm kann dann installiert und benutzt werden.

Für technische Änderungen und Weiterentwicklungen eines Programmes wird – da das übersetzte Programm üblicherweise nur schwierig rückübersetzt oder decompiliert werden kann – der Quellcode benötigt. Deshalb ist es für den Entwickler – ebenso wie für den Erwerber – einer Software von großer Bedeutung, ob im Rahmen einer Softwareentwicklung oder eines Softwarekaufs die Herausgabe des Quellcodes geschuldet ist.

Unterschieden wird dabei zunächst zwischen Standard- und Individualsoftware:

Standardsoftware

Bei Standardsoftware ist die Sache ziemlich klar: Unter Standardsoftware versteht man Software, die nicht individuell für einen einzelnen Nutzer programmiert wurde – sozusagen 08/15 Software. Bei Standardsoftware hat der Erwerber lediglich das Interesse, die Software in der bestehenden Version zu nutzen. Der Hersteller hingegen hat ein großes Interesse daran den Quellcode geheim zu halten, um die Software in Zukunft zu verbessern und weiterhin verwerten zu können.

Es wird also in der überwiegenden Anzahl der Fälle so sein, dass bei der Lieferung von Standardsoftware nur das Programm im ausführbaren Zustand und die Benutzerdokumentation geschuldet wird.

Individualsoftware

Individualsoftware ist Software, die durch den Programmierer speziell auf die Bedürfnisse des Bestellers zugeschnitten wird.

Ob bei der Bestellung von Individualsoftware die Herausgabe des Quellcodes geschuldet ist, richtet sich nach der Vertragsgestaltung und der gesamten Situation. Soweit der Entwickler zum Beispiel gleichzeitig die Fortentwicklung und den Support der Software übernommen hat, wird man eine Herausgabe des Quellcodes verneinen müssen. in diesem Fall benötigt der Erwerber gerade nicht den Quellcode um die Software zu ändern – dies übernimmt ja der Hersteller.

Im entgegengesetzten Fall, wenn also gerade kein Support (mehr) durch den Entwickler angeboten wird, besteht regelmäßig die Pflicht auf Herausgabe des Quellcodes – denn wie sollte ein Nutzer einer solchen Software sonst eventuelle Bugs beheben oder notwendige Fortentwicklungen programmieren können.

Embedded Software

Bis hierhin ist das alles mehr oder weniger „Standardprogramm“. Wir hatten nun einen Fall, da ging es um Embedded Software. Unser Mandant hat eine komplette Steuerungselektronik für große Industrieanlagen geliefert. Allein die Steuerung hat so in etwa die Größe eines Wandschranks. Und sie ist natürlich softwaregesteuert.

Dabei ging es nicht nur um die Frage ob die entsprechende Software Standard- oder Individualsoftware darstellt. Es ging auch noch darum, ob diese Steuerungssoftware überhaupt „normale“ Software ist. Genauer gesagt: Besteht ein rechtlicher Unterschied zwischen typischer Anwendersoftware und in elektronische Geräte eingebetteter („embedded“) Software? Eine solche  embedded Software ist funktional fest mit der Hardware verbunden.

Vor Gericht musste also zunächst geklärt werden, ob es sich bei dieser Firmware um Standard- oder Individualsoftware handelte. In diesem speziellen Fall war es nämlich so, dass die Steuerungen jeweils Einzelanfertigungen waren, die elektronischen Bauteile des Lieferanten aber Seriengeräte für mehrere Kunden darstellen – die aber wiederum ursprünglich durch den Lieferanten für die gegenständlichen Maschinen hergestellt wurden. Klingt kompliziert? War es auch. Jedenfalls war tatsächlich für jede Steuerung die Software „from scratch“ neu geschrieben worden.

Schließlich war jedoch die Frage entscheidend, ob der Käufer der elektronischen Bauteile überhaupt ein schutzwürdiges Interesse am Quellcode hatte. Die Kauf- und Lieferverträge zwischen den Parteien gaben dazu leider nicht viel her. Um genau zu sein war in den Verträgen weder explizit die Software, noch der Quellcode erwähnt – es waren vielmehr Standard-Kaufverträge für die elektronischen Bauteile. Also musste (um es juristisch auszudrücken) der wahre Wille der Parteien durch Auslegung ermittelt werden: In der Vergangenheit hat der Lieferant regelmäßig die elektronischen Bauteile gewartet und die integrierte Firmware fortentwickelt; damit benötigte der Käufer den Quellcode eigentlich nicht, denn der Lieferant hielt die Software up-to-date. Hätte er dies nicht getan, wäre er zur Herausgabe verpflichtet gewesen denn – siehe oben- wie hätte der Käufer sonst sicherstellen können, dass die Firmware up-to-date bleibt? Gleichzeitig bestand das Problem, dass gerade keine vertragliche Verpflichtung des Lieferanten festgehalten war, die Firmware zu warten und fortzuentwickeln…

Kurzum: Es gab allerlei, was für und gegen die Herausgabeverpflichtung am Quellcode sprach.

Wer jetzt auf die Antwort wartet: Es gibt keine. Wir haben mit der Gegenseite reichlich Argumente ausgetauscht – und uns letztlich verglichen. Damit waren Mandantschaft und Gegenseite zufrieden, und wir deswegen natürlich auch – aber schade um die Chance, in der Frage Klarheit durch eine z.B. obergerichtliche Entscheidung zu bekommen.

Eine Moral hat die Geschicht‘ aber doch noch: Bei der Gestaltung solcher Entwicklungsverträge (die hatten natürlich nicht wir gestaltet) sollte man die Herausgabepflicht von Quellcode immer klar regeln, auch wenn es um embedded Software geht. Klare vertragliche Regelungen helfen, einen eventuellen Streit bereits im Vorfeld zu verhindern.