Softwareentwicklung ist ein wichtiger Teil der modernen Technologiebranche. Mit der zunehmenden Komplexität von Softwareprojekten steigen auch die rechtlichen Herausforderungen im Zusammenhang mit der Gewährleistung und Haftung bei Softwareentwicklung. Im vorliegenden Beitrag gehen wir ausführlich auf die Grundlagen der rechtlichen Aspekte bei Softwareentwicklung ein, um Ihnen als Auftraggeber oder Softwareentwickler zu helfen, das erforderliche rechtliche Wissen für diese komplexen Prozesse aufzubauen.

Rechtliche Grundlagen

Die rechtlichen Grundlagen der Gewährleistung und Haftung im Bereich der Softwareentwicklung basieren auf verschiedenen Gesetzen und Rechtsvorschriften:

  • Für Verträge im Bereich der Softwareentwicklung gilt das Kaufrecht nach dem Bürgerlichen Gesetzbuch (BGB), da sie als Werkvertrag eingestuft werden. Dabei sind die §§ 634 ff. BGB (Werkvertragsrecht) anwendbar.
  • Das Urheberrechtsgesetz (UrhG) schützt geistiges Eigentum, insbesondere Computerprogramme (§ 69a ff. UrhG), und kann ebenfalls bei Verstößen gegen das Urheberrecht, wie zum Beispiel unzulässige Kopien oder Weitergabe von Software, relevant sein.
  • Bei Softwareprojekten, die auf individuellen Kundenwunsch erstellt werden, kommen die § 633 ff. BGB (Werkvertragsrecht für Dienstleistungen) zur Anwendung.

Fehlerarten und Mängel in der Softwareentwicklung

Fehler in der Software

Ein Fehler in der Softwareentwicklung liegt vor, wenn ein geschuldetes Ergebnis nicht den vertraglich vereinbarten Anforderungen entspricht oder wenn ein Softwareprodukt nicht ordnungsgemäß funktioniert. Fehler können unterschiedliche Kategorien haben:

  • Funktionalitätsfehler: Die Software weist nicht die erforderlichen Funktionen auf oder erfüllt nicht die vertraglich festgelegten oder üblicherweise erwarteten Funktionen.
  • Qualitätsmängel: Das Ergebnis der Softwareentwicklung entspricht nicht den vereinbarten Qualitätskriterien, zum Beispiel hinsichtlich Benutzerfreundlichkeit, Performance oder Stabilität.
  • Rechtliche Mängel: Die erstellte Software verletzt geltendes Recht oder verfügt nicht über die erforderlichen Lizenzen zur Nutzung und Weitergabe.

Mängel in der Dokumentation

Ein Mangel in der Dokumentation liegt vor, wenn die technischen Informationen und Anleitungen zur Verwendung und Wartung der Software unvollständig, undeutlich oder fehlerhaft sind. Solche Mängel können dazu führen, dass die Software nicht in vollem Umfang genutzt oder gewartet werden kann.

Gewährleistung und Haftung im Werkvertrag

Im Werkvertrag ist der Unternehmer verpflichtet, ein werkvertragliches Werk herzustellen und dem Besteller zu übergeben, während der Besteller zur Zahlung des vereinbarten Werklohns verpflichtet ist (§ 631 BGB). Für Mängel am geschuldeten Werk haftet der Unternehmer gemäß den Vorschriften des Werkvertragsrechts (§§ 634 ff. BGB).

Die Gewährleistungsfrist beträgt gemäß § 634a Abs. 1 Nr. 1 und 2 BGB zwei Jahre ab Abnahme des Werks für den Besteller. Innerhalb dieser Frist hat er das Recht, Nacherfüllung, Minderung des Werklohns, Schadensersatz oder Ersatz vergeblicher Aufwendungen zu verlangen.

  • Nacherfüllung: Der Besteller hat das Recht auf Nacherfüllung, das heißt Beseitigung des Mangels oder Neuerstellung des Werks (§ 635 BGB). Der Unternehmer muss innerhalb einer angemessenen Frist nachbessern oder das Werk neu herstellen.
  • Minderung: Wenn die Nacherfüllung fehlschlägt oder unverhältnismäßig ist, kann der Besteller den Werklohn mindern (§ 634 Nr. 3 BGB).
  • Schadensersatz: Der Besteller kann Schadensersatz für den Schaden verlangen, der ihm durch den Mangel entstanden ist (§ 634 Nr. 4 BGB).
  • Ersatz vergeblicher Aufwendungen: Der Besteller kann Ersatz für nutzlose Aufwendungen verlangen, die ihm im Vertrauen auf die Mangelfreiheit des Werks entstanden sind (§ 634 Nr. 6 BGB).

Der Unternehmer haftet nur für die schuldhafte Verursachung eines Mangels. Er ist jedoch zum Schadensersatz verpflichtet, wenn ein Mangel auf Vorsatz oder grobe Fahrlässigkeit zurückzuführen ist oder wenn er eine Garantie für das Werk übernommen hat (§ 636 BGB).

Abgrenzung individuelle Softwareentwicklung und Standardsoftware

Bei der rechtlichen Einordnung von Softwareprodukten spielen die Unterschiede zwischen individueller Softwareentwicklung und Standardsoftware (auch kommerzielle Software oder „Off-the-shelf“-Software) eine zentrale Rolle:

  • Individuelle Softwareentwicklung: Hierbei handelt es sich um Software, die auf der Grundlage eines individuellen Auftrags für einen bestimmten Kunden entwickelt wird. Sie erfüllt genau die vom Kunden gewünschten Funktionen und Anforderungen. Individuelle Softwareentwicklung unterliegt in der Regel den Regelungen des Werkvertragsrechts (§§ 631 ff. BGB).
  • Standardsoftware: Bei Standardsoftware handelt es sich um Softwareprodukte, die für einen breiten Markt entwickelt wurden und in der Regel nicht an die individuellen Bedürfnisse eines einzelnen Kunden angepasst sind. Sie wird meistens über eine Lizenzvereinbarung verkauft, wobei die Regelungen des Kaufrechts (§§ 433 ff. BGB) und des Mietrechts (§§ 535 ff. BGB) Anwendung finden können.

Gewährleistung und Haftung bei Standardsoftware

Für Standardsoftware kommen, wie bereits erwähnt, das Kaufrecht und das Mietrecht zur Anwendung, je nach dem konkreten Vertragsverhältnis. Im Kaufrecht gelten die allgemeinen Gewährleistungsregelungen des § 437 BGB, während im Mietrecht die Mängelrechte des § 536 BGB relevant sind.

  • Gewährleistung im Kaufrecht: Bei Kaufverträgen kann der Käufer Nacherfüllung verlangen (§ 439 BGB), den Kaufpreis mindern (§ 441 BGB), vom Vertrag zurücktreten (§ 440 BGB) oder Schadensersatz verlangen (§ 437 Nr. 3 BGB). Die Verjährungsfrist für Mängelansprüche beträgt zwei Jahre ab Übergabe der Kaufsache (§ 438 Abs. 1 Nr. 3 BGB).
  • Gewährleistung im Mietrecht: Bei Mietverhältnissen kann der Mieter Mangelbeseitigung verlangen (§ 535 Abs. 1 BGB), die Miete mindern (§ 536 BGB) oder unter Umständen Schadensersatz verlangen (§ 536a BGB). Die Verjährungsfrist für Mängelansprüche beträgt hier ebenfalls zwei Jahre ab Entstehen des Anspruchs oder Kenntnisnahme des Mieters von dem Mangel (§ 548 BGB).

Haftung für mangelhafte Open-Source-Software

Open-Source-Software ist Software, deren Quellcode frei zugänglich ist und die von Dritten weiterentwickelt, verändert und in eigenen Softwareprojekten verwendet werden darf. Open-Source-Lizenzen legen die rechtlichen Bedingungen für die Nutzung und Weitergabe dieser Software fest.

Die Haftung für Open-Source-Software gestaltet sich in der Regel anders als bei proprietärer Software, da sie meistens unter der Bedingung der „Gewährleistungsausschluss“ genutzt wird. Das bedeutet, dass der Urheber keine Gewährleistungen oder Garantien für die Funktionsfähigkeit oder Qualität der Software übernimmt. Dementsprechend haftet der Urheber in der Regel nicht für Mängel, es sei denn, dies wurde ausdrücklich in der jeweiligen Open-Source-Lizenz festgelegt oder es handelt sich um Vorsatz oder grobe Fahrlässigkeit.

Zusammengefasst bedeutet dies, dass Kunden, die Open-Source-Software einsetzen, häufig vollständig auf eigene Gefahr handeln und keine oder nur sehr begrenzte Ansprüche gegenüber dem Urheber oder Softwareentwickler geltend machen können.

Vertragsrechtliche Absicherung bei Softwareentwicklungsprojekten

Um mögliche Streitigkeiten und Haftungsfragen bei Softwareentwicklung zu vermeiden, ist es wichtig, dass die Vertragsparteien ihre Rechte und Pflichten klar und eindeutig im Vertrag festlegen. Hier sind einige Punkte, die in Softwareentwicklungsverträgen berücksichtigt werden sollten:

  • Leistungsbeschreibung: Die Leistungen des Softwareentwicklers sollten präzise und vollständig beschrieben werden, um Unklarheiten und spätere Streitigkeiten zu vermeiden. Dazu gehört auch eine klar definierte Abgrenzung zwischen Standardsoftware und individueller Softwareentwicklung.
  • Abnahme: Die Regelungen zur Abnahme des Softwareprodukts sollten klar festgelegt werden, insbesondere hinsichtlich der Kriterien für die Funktionstauglichkeit und der Mängelprüfung durch den Auftraggeber.
  • Änderungsmanagement: Die Vertragsparteien sollten Regelungen für Änderungsanträge und -prozesse treffen, um eine reibungslose Umsetzung von Änderungen während des Softwareentwicklungsprojekts zu gewährleisten.
  • Gewährleistung: Für die Gewährleistungsfrist und mögliche Gewährleistungsansprüche sollten klare Regelungen getroffen werden. Dabei kann es sinnvoll sein, differenzierte Regelungen für verschiedene Arten von Mängeln zu vereinbaren.
  • Haftungsbeschränkungen: Die Vertragsparteien sollten Regelungen zur Haftungsbeschränkung, etwa das Ausschließen von Schadensersatzansprüchen bei leichter Fahrlässigkeit oder eine Beschränkung auf den vertraglich vereinbarten Vergütungsbetrag, treffen.
  • Geistiges Eigentum und Lizenzierung: Die Regelungen hinsichtlich des geistigen Eigentums und der Lizenzierung der erstellten Software, insbesondere beim Einsatz von Open-Source-Software, sollten im Vertrag klar festgelegt werden.

FAQs

1. Wann liegt ein Mangel in der Softwareentwicklung vor?

Ein Mangel in der Softwareentwicklung liegt vor, wenn das geschuldete Ergebnis nicht den vertraglich vereinbarten Anforderungen entspricht oder die Software nicht ordnungsgemäß funktioniert. Mängel können sich auf Funktionalität, Qualität oder rechtliche Aspekte beziehen.

2. Wie lange ist die Gewährleistungsfrist bei Softwareentwicklung?

Bei Softwareentwicklung, die als Werkleistung eingestuft wird, beträgt die Gewährleistungsfrist zwei Jahre ab Abnahme des Werks (§ 634a Abs. 1 Nr. 1 und 2 BGB).

3. Wann haftet der Softwareentwickler für Mängel in der Software?

Der Softwareentwickler haftet für schuldhaft verursachte Mängel. Eine Haftung besteht insbesondere bei Vorsatz, grober Fahrlässigkeit oder Übernahme einer Garantie für das Werk (§ 636 BGB). Bei Open-Source-Software kann eine Haftung jedoch stark eingeschränkt oder ausgeschlossen sein.

4. Was ist der Unterschied zwischen individueller Softwareentwicklung und Standardsoftware?

Individuelle Softwareentwicklung bezieht sich auf Software, die auf Basis eines individuellen Auftrags für einen bestimmten Kunden entwickelt wird. Standardsoftware ist für einen breiten Markt entwickelt und wird meist über eine Lizenzvereinbarung verkauft.

5. Wie kann man sich vertragsrechtlich bei Softwareentwicklung absichern?

Um sich vertragsrechtlich abzusichern, sollten die Vertragsparteien wichtige Punkte wie Leistungsbeschreibung, Abnahme, Änderungsmanagement, Gewährleistung, Haftungsbeschränkungen und geistiges Eigentum im Vertrag klar und präzise regeln.

Fazit

Gewährleistung und Haftung bei Softwareentwicklung sind komplexe Themen, die sowohl Kunden als auch Softwareentwickler vor besondere Herausforderungen stellen. Die rechtliche Einordnung von Softwareprojekten, die unterschiedlichen Mängelarten sowie die verschiedenen Anspruchsgrundlagen und Haftungsszenarien zeigen die Komplexität dieser Thematik.

Eine sorgfältige Vertragsgestaltung und das Verständnis der gesetzlichen Grundlagen sind essenziell, um mögliche Haftungsrisiken zu minimieren und einen reibungslosen Ablauf von Softwareprojekten zu gewährleisten.

Unsere Rechtsanwälte stehen Ihnen bundesweit und im deutschsprachigen Ausland zur Verfügung.

Philipp Franz Rechtsanwalt

Philipp Franz | Rechtsanwalt | Associate

Anwalt Wolfgang Herfurtner Hamburg - Wirtschaftsrecht

Wolfgang Herfurtner | Rechtsanwalt | Geschäftsführer | Gesellschafter

Rechtsanwalt Arthur Wilms - Kanzlei Herfurtner

Arthur Wilms | Rechtsanwalt | Associate

Kundenbewertungen & Erfahrungen zu Herfurtner Rechtsanwälte. Mehr Infos anzeigen.

Aktuelle Beiträge aus dem Rechtsgebiet IT-Recht