Mit einer spannenden Frage hat sich das Oberlandesgericht Hamm (18 U 93/17) beschäftigt: Vordergründig ging es um die Frage, ob ein Kassensystem als „erforderliche Unterlage“ im Sinne von § 86a Abs. 1 HGB einzustufen ist – was der Bundesgerichtshof längst bejaht hat. An diese Frage anknüpfend stellt sich aber eine weitere Frage:
Wenn eine Vereinbarung der entgeltlichen Überlassung eines Kassensystems im Hinblick auf eine einzelne Funktion (hier: Preisübermittlungsfunktion) dieses Systems unwirksam ist und dies zur Teilunwirksamkeit der Vereinbarung führt – wie ist dann das Entgelt zu kürzen? Das OLG geht einen Weg, der Softwareentwickler aufhorchen lassen sollte.
Die Frage stellt sich natürlich nur dort, wo eine Leistung auch teilbar ist, was der BGH bei Kassensystemen annimmt – und auch sonst bei komplexer Software mit verschiedenen Funktionen im Raum stehen dürfte. Nun müsste man aber den Anteil der abtrennbaren Funktion herausrechnen, hinsichtlich dessen das Entgelt unwirksam ist. Aber wie soll das gehen:
- nach der „Bedeutung“ der Preisübermittlungsfunktion für das Geschäft des Handelsvertreters oder
- nach der Häufigkeit der Nutzung dieser Funktion oder
- der dafür beanspruchten System- bzw. Rechnerleistung?
Das OLG geht einen ganz anderen Weg und stellt fest, dass auf das Verhältnis der entsprechenden Code-Zeilen abzustellen ist:
Dem Senat erscheint es sachgerecht und letztlich auch allein praktikabel, auf den Programmierungsumfang dieser Funktion im Rahmen des „Gesamtsystems“ (…) – und nicht etwa auf die Häufigkeit ihres Ablaufs oder auf die „Wesentlichkeit“ (…) – abzustellen.
Der Programmierungsumfang ist objektiv feststellbar; er steht in direktem Zusammenhang mit den Softwarekosten des Systems. Um den Programmierungsumfang festzustellen, kann dabei die Anzahl der Zeilen (lines of code) eines Programms herangezogen werden, auch wenn diese Zeilen unterschiedliche Länge haben können. Wie sich aus der Erläuterung des Sachverständigen (…) ergibt, halten sich Programmierer üblicherweise innerhalb bestimmter Zeilenlängen.
Das bedeutet, es kann die Bemessung der vorzunehmenden Entgeltkürzung nach dem Anteil der auf die entsprechende Funktion entfallenden Programmierung (sog. lines of code) ermittelt werden.
Die Entscheidung ist bemerkenswert und eröffnet die Diskussion auch in anderen Szenarien – nämlich überall dort, wo eine umfangreiche Software mit diversen Funktionen geliefert wird, die zwar insgesamt funktioniert und vom Kunden auch eingesetzt wird, aber in Teilen eben nicht (was der Kunde im Alltag weitestgehend ignorieren kann). Für dieses Standard-Szenario in IT-Projekten bietet die vorliegende Entscheidung einen Lösungsansatz zur Minderung, fernab der Diskussionen zur Häufigkeit der Nutzung bestimmter Funktionsteile.
- Sichere Softwareentwicklung: Ein Leitfaden zur Risikovermeidung und Qualitätssteigerung - November 10, 2024
- Open Source AI Definition 1.0 - Oktober 31, 2024
- Überblick über das Softwarerecht in Deutschland: Wichtige rechtliche Probleme bei der Softwareentwicklung und -vermarktung - September 21, 2024