Ein Softwareentwicklungsvertrag ist möglicherweise das wichtigste Dokument, das Sie unterzeichnen, wenn Sie ein Entwicklerteam beauftragen oder einen Auftrag als Entwicklerteam annehmen. In der Praxis werden jedoch häufig zu kurze und unklare Vereinbarungen unterzeichnet, die nachträglich zur Quelle kostspieliger Streitigkeiten werden – insbesondere wenn das Verhältnis zwischen Auftraggeber und Auftragnehmer angespannt wird.
Dieser Text hat informativen Charakter und ersetzt keine individuelle Rechtsberatung.
Warum sind Softwareentwicklungsverträge besonders?
Im Gegensatz zu Verträgen über die Lieferung physischer Güter ist Softwareentwicklung ein kreativer, iterativer und immaterieller Prozess. Das Ergebnis der Arbeit – Quellcode, Dokumentation, Design – fällt in den Bereich des geistigen Eigentums (IP, Intellectual Property). Der allgemeine urheberrechtliche Grundsatz besagt, dass das Urheberrecht beim Urheber liegt, nicht beim Auftraggeber. Das serbische Gesetz über das Urheberrecht und verwandte Schutzrechte (ZASP) enthält jedoch eine besondere Regelung für auf Bestellung erstellte Computerprogramme: Der Auftraggeber erwirbt die Nutzungsrechte am Programm, sofern vertraglich nichts anderes bestimmt ist, während die Urheberpersönlichkeitsrechte beim Urheber verbleiben. Die rechtsvergleichenden Lösungen unterscheiden sich dabei – in vielen Rechtsordnungen verbleiben die Urheberrechte an bestellter Software beim Entwickler, wenn der Vertrag keine Übertragung vorsieht – weshalb man sich auf gesetzliche Standardregelungen ohne ausdrückliche Vertragsklausel nicht verlassen sollte, insbesondere bei grenzüberschreitenden Aufträgen.
Ohne ausdrückliche Klausel zur Rechtsübertragung oder Lizenzeinräumung im Vertrag bleibt der Umfang der Befugnisse des Auftraggebers, die von ihm finanzierte Software frei zu nutzen, zu verändern oder weiterzulizenzieren, auslegungsbedürftig – was eine häufige Quelle von Streitigkeiten ist.
Definition des Leistungsumfangs (Scope of Work)
Die Grundlage jedes Entwicklungsvertrags ist eine präzise Spezifikation dessen, was geliefert wird. Vage Formulierungen wie „Entwicklung einer Webanwendung” können zu endlosen Streitigkeiten darüber führen, ob eine bestimmte Funktionalität im vereinbarten Preis enthalten war.
Eine qualitativ hochwertige Leistungsbeschreibung sollte umfassen: eine Liste der Funktionalitäten (Feature List) mit Beschreibung der User Stories oder technischen Anforderungen, technische Spezifikationen (Technologie-Stack, integrierte Drittanbieter-Systeme, Leistungsanforderungen), die Definition von Abnahmekriterien (Acceptance Criteria) für jede gelieferte Einheit sowie einen Zeitrahmen mit Meilensteinen (Milestones).
Der Vertrag sollte auch einen klaren Change-Management-Prozess enthalten – ein Verfahren, durch das nachträgliche Änderungen des Leistungsumfangs vereinbart werden, stets in Schriftform und mit Einigung über die Auswirkungen auf Preis und Fristen.
Eigentum am Quellcode und Übertragung von IP-Rechten
Dies ist die kritischste Klausel in jedem Softwareentwicklungsvertrag. Es gibt zwei grundlegende Modelle:
Übertragung der Urheberrechte (Assignment): Alle vermögensrechtlichen Urheberrechte am während des Auftrags entstandenen Code werden mit Zahlung der Vergütung vom Auftragnehmer auf den Auftraggeber übertragen. Dies ist das Modell, das Auftraggeber in der Regel bevorzugen. Die Klausel muss ausdrücklich formuliert sein, da Urheberverträge, mit denen vermögensrechtliche Urheberrechte übertragen werden, nach dem serbischen Gesetz über das Urheberrecht und verwandte Schutzrechte (ZASP) grundsätzlich in Schriftform abzuschließen sind.
Lizenzierung: Anstelle einer Eigentumsübertragung erhält der Auftraggeber eine Lizenz zur Nutzung der Software. Die Lizenz kann exklusiv oder nicht-exklusiv, zeitlich begrenzt oder unbegrenzt, territorial begrenzt oder global sein. Dies ist häufig das von IT-Agenturen bevorzugte Modell, da sie das Eigentum am Code behalten, den sie wiederverwenden können.
Eine besondere Frage ist die Behandlung von bereits vorbestehendem Code (Pre-Existing IP) – Bibliotheken, Module oder Komponenten, die der Entwickler in das Projekt einbringt und die vor dem Auftrag entstanden sind. Diese Komponenten sollten im Vertrag ausdrücklich aufgelistet und die Lizenz geregelt werden, mit der dem Auftraggeber die Nutzung im Rahmen der gelieferten Software gestattet wird.
Auch Open-Source-Komponenten sollten berücksichtigt werden: Verwendet die Software Bibliotheken unter der GPL-Lizenz (GNU General Public License), kann dies Auswirkungen auf die Möglichkeit der kommerziellen Verbreitung des Endprodukts haben.
Vertraulichkeit und Geheimhaltung (NDA)
Ein Softwareentwicklungsvertrag sollte nahezu immer Vertraulichkeitsbestimmungen enthalten, oder es wird ein gesondertes NDA (Non-Disclosure Agreement, Geheimhaltungsvereinbarung) unterzeichnet. Der Auftraggeber offenbart dem Auftragnehmer im Laufe der Zusammenarbeit Geschäftsgeheimnisse, Geschäftspläne, Nutzerdatenbanken und technische Architekturen. Der Auftragnehmer wiederum kann vertrauliche technische Prozesse und Methoden haben.
Die Vertraulichkeitsklausel sollte definieren: was als vertrauliche Information gilt, welche Informationen ausgenommen sind (allgemein bekannte Informationen, von Dritten erhaltene Informationen), wer Zugang zu vertraulichen Informationen hat (Unterauftragnehmer, Mitarbeiter), die Dauer der Vertraulichkeitspflicht sowie die Folgen einer Verletzung.
Gewährleistung, Haftung und Haftungsbeschränkungsklauseln
Der Vertrag sollte regeln:
Gewährleistung für Mängelfreiheit: Der Zeitraum, in dem sich der Auftragnehmer verpflichtet, Fehler in der gelieferten Software kostenlos zu beheben. Der übliche Zeitraum beträgt 30 Tage bis 12 Monate ab Übergabe, abhängig von Umfang und Komplexität des Projekts.
Haftungsbeschränkung: Nahezu jeder professionelle Softwareentwicklungsvertrag enthält eine Klausel, die die maximale Haftung des Auftragnehmers auf den Vertragswert oder ein bestimmtes Vielfaches der monatlichen Vergütung begrenzt. Ohne diese Klausel wäre der Auftragnehmer einer potenziell unbegrenzten Haftung für Folgeschäden ausgesetzt.
Haftung für die Verletzung von Rechten Dritter: Der Auftragnehmer sollte garantieren, dass der gelieferte Code keine Rechte des geistigen Eigentums Dritter verletzt, und den Auftraggeber gegen daraus resultierende Ansprüche Dritter verteidigen.
Häufig gestellte Fragen (Q&A)
Kann der Entwickler das Recht behalten, den von ihm entwickelten Code in seinem Portfolio zu zeigen? Ja, sofern dies ausdrücklich vereinbart wurde. Die typische Lösung ist, dass der Entwickler das Projekt in seinem Portfolio erwähnen darf, den Code selbst jedoch nicht veröffentlichen darf, wenn dieser als vertraulich eingestuft ist. Dies sollte durch eine gesonderte Bestimmung geregelt werden.
Was geschieht mit den Rechten an der Software, wenn der Vertrag vor Abschluss der Arbeiten aufgelöst wird? Dies ist eine Frage, die ausdrücklich geregelt werden muss. Der übliche Ansatz ist, dass der Auftraggeber die Rechte an den gelieferten und bezahlten Deliverables erhält, während unbezahlte Arbeiten im Eigentum des Auftragnehmers verbleiben.
Reicht es aus, ein Angebot oder einen Kostenvoranschlag als Vertrag zu unterzeichnen? Ein Angebot oder Kostenvoranschlag ist kein Ersatz für einen Vertrag. Sie regeln den Preis und beschreiben die Leistung, enthalten jedoch fast nie Bestimmungen zu IP-Rechten, Vertraulichkeit, Gewährleistung und Haftungsbeschränkungen. Im Streitfall lässt dies beide Parteien ohne klaren Rechtsrahmen.
Was ist eine Wettbewerbsverbotsklausel und ist sie zulässig? Eine Klausel, durch die sich der Entwickler verpflichtet, innerhalb eines bestimmten Zeitraums nicht für direkte Wettbewerber des Auftraggebers tätig zu werden, ist zulässig, muss jedoch in Bezug auf Dauer und geografischen Geltungsbereich angemessen begrenzt sein, um durchsetzbar zu sein. Zu weit gefasste Klauseln können von Gerichten für nichtig erklärt werden.
Fazit
Ein Softwareentwicklungsvertrag ist ein Dokument, das beide Parteien schützt. Auftraggeber ohne eine klare IP-Vereinbarung riskieren Ungewissheit hinsichtlich des Umfangs ihrer Rechte an dem von ihnen finanzierten Produkt. Entwickler ohne Haftungsbeschränkungsklausel sind unverhältnismäßigen Risiken ausgesetzt.
Die Investition in einen qualitativ hochwertigen Vertrag vor Beginn der Entwicklung zahlt sich im Vergleich zu den Kosten eines etwaigen Rechtsstreits um ein Vielfaches aus.
Vereinbaren Sie eine Beratung mit unserem Team – wir erstellen maßgeschneiderte Softwareentwicklungsverträge für Auftraggeber und IT-Unternehmen.
Quellen: – Zakon o autorskom i srodnim pravima RS („Sl. glasnik RS” br. 104/2009, 99/2011, 119/2012, 29/2016 — odluka US i 66/2019) – https://www.wipo.int/portal/en/index.html – https://www.lexology.com/library/detail.aspx?g=ea21e355-081e-451d-b333-6a3f25c74261 – https://www.abacuslaw.com/blog/software-development-agreement-key-provisions/