Ein Code fällt grundsätzlich unter das Urheberrecht, sobald er in einer konkreten Ausformung vorliegt, die die Kriterien für urheberrechtlichen Schutz erfüllt. Das bedeutet, dass der Code eine gewisse Originalität und schöpferische Leistung aufweisen muss, um als “Werk” im Sinne des Urheberrechts zu gelten.
Konkret bedeutet das:
- Originalität: Der Code muss eine persönliche geistige Schöpfung seines Urhebers darstellen. Das bedeutet, er muss nicht nur eine bloße Aneinanderreihung von Standardlösungen oder Fakten sein, sondern eine gewisse Kreativität oder Originalität aufweisen.
- Konkrete Ausformung: Der Code muss in einer festgelegten Form niedergeschrieben oder anderweitig fixiert sein, z.B. in Form von Quellcode oder ausgedruckter Form.
- Automatischer Schutz: Anders als in einigen Rechtssystemen, wie etwa den USA, ist für den Schutz nach deutschem Recht keine Registrierung oder spezielle Kennzeichnung erforderlich. Der Schutz entsteht automatisch mit der Schöpfung des Werks.
- Schutzdauer: In Deutschland gilt der Schutz für Urheberrechte für die Dauer des Lebens des Urhebers plus 70 Jahre nach seinem Tod.
Daher unterliegt ein Code, sobald er in dieser Weise ausformuliert ist und die Kriterien erfüllt, dem vollen Schutz des Urheberrechts.
Um festzustellen, ob ein Computerprogramm eine schöpferische Leistung darstellt oder nur eine Standardlösung ist, können verschiedene Unterscheidungsmerkmale herangezogen werden:
- Originalität und Individualität:
- Schöpferische Leistung: Der Code zeigt eine individuelle und kreative Lösung, die auf originellen Ideen basiert und sich von standardisierten oder vorgefertigten Lösungen abhebt. Ein Beispiel könnte eine neuartige Algorithmus-Implementierung sein, die in dieser Form noch nicht existiert.
- Standardlösung: Der Code basiert auf allgemein bekannten und häufig verwendeten Mustern, Bibliotheken oder Frameworks ohne signifikante Modifikationen oder kreative Anpassungen.
- Komplexität und Struktur:
- Schöpferische Leistung: Der Code weist eine komplexe und durchdachte Struktur auf, die über das einfache Zusammenfügen von Standardkomponenten hinausgeht. Dies könnte spezielle Datenstrukturen, einzigartige Algorithmen oder eine besondere Architektur umfassen.
- Standardlösung: Der Code besteht hauptsächlich aus einfachen, weit verbreiteten Mustern und Standardkomponenten ohne besondere Komplexität oder Raffinesse.
- Innovationsgrad:
- Schöpferische Leistung: Der Code enthält innovative Ansätze oder neue Techniken, die in der Programmierwelt noch nicht etabliert sind. Dies könnte eine neue Methode zur Datenverarbeitung oder ein neuer Weg zur Problemlösung sein.
- Standardlösung: Der Code nutzt etablierte und weit verbreitete Techniken und Ansätze, die in der Programmierwelt bereits allgemein bekannt und häufig angewendet werden.
- Gestaltungsfreiheit:
- Schöpferische Leistung: Der Entwickler hatte eine erhebliche Freiheit bei der Gestaltung des Codes, was zu einzigartigen und persönlichen Lösungen führte. Dies könnte sich in einer besonders eleganten, effizienten oder ungewöhnlichen Implementierung manifestieren.
- Standardlösung: Der Entwickler folgte strikten Vorgaben oder Standards, die wenig Raum für individuelle oder kreative Entscheidungen ließen.
- Dokumentation und Kommentierung:
- Schöpferische Leistung: Der Code ist ausführlich dokumentiert und kommentiert, was die komplexen Gedankengänge und kreativen Prozesse des Entwicklers nachvollziehbar macht.
- Standardlösung: Die Dokumentation und Kommentierung sind minimal und beschränken sich auf grundlegende Erklärungen der Funktionsweise.
Zusammengefasst lässt sich sagen, dass schöpferische Leistung im Code sich durch Originalität, Komplexität, Innovationsgrad, Gestaltungsfreiheit und eine umfassende Dokumentation auszeichnet. Standardlösungen hingegen sind oft einfacher, weniger innovativ und folgen etablierten Mustern und Vorgaben.