Agile Software-Entwicklung unter deutschem Vertragsrecht
Agile Software-Entwicklung ist in vielen Projekten eine Methode der Wahl. Sie wird im Allgemeinen als eine Methode auf dem neuesten Stand der Technik betrachtet, die im Gegensatz zu traditionelleren Ansätzen, die auf sorgfältig ausgearbeiteten Plänen, Meilensteinen und Zeitplänen basieren, Flexibilität und Endergebnisse in den Vordergrund stellt. Agile Projekte beinhalten typischerweise eine gemeinsame Anstrengung selbstorganisierender und funktionsübergreifender Teams, die nicht nur von den Programmierern und Entwicklern, sondern auch vom Kunden bzw. Endbenutzer gebildet werden.
Agile Strukturen ermöglichen eine dynamische und flexible Verwaltung und Kontrolle von Projekten. Änderungen hinsichtlich Leistungsumfang, Zeit und Kosten sind die Regel. Ein erhöhtes Maß an Beteiligung des Kunden ist erforderlich.
So effektiv und möglicherweise effizient sie auch sein mögen, agile Projekte können mit einer Vielzahl einzigartiger rechtlicher Herausforderungen und Komplikationen verbunden sein.
Wie bei jedem anderen Software-Projekt sind alle beteiligten Parteien gut beraten, den rechtlichen und vertraglichen Aspekten besondere Aufmerksamkeit zu schenken und rechtzeitig eine Grundlage für eine ordnungsgemäße vertragliche Vereinbarung zu schaffen.
Die Eigentumsverhältnisse am Projekt und das letztendliche Eigentum an der entstehenden Software müssen definiert werden. Sie müssen nicht unbedingt bei derselben Partei liegen.
Das eigentliche Entwicklungsverfahren sollte zumindest als allgemeiner Rahmen definiert werden, in dem die Mechanismen der Iterationen oder Sprints, die Zeitrahmen bzw. Zeitboxen, die Planungs-, Codierungs- und Testphasen, Demonstrationen für die Beteiligten usw. festgelegt werden.
Nach einem Sprint sollte die Option einer anschließenden Iteration oder stattdessen der Abbruch des Projekts und die Auswirkungen eines solchen Abbruchs in Betracht gezogen werden.
Von besonderer Bedeutung ist es, die relevanten Rechte zu identifizieren und das Rechtemanagement und mögliche Lizenzmodelle zu entwerfen. Dabei spielen u.a. folgende Aspekte eine Rolle: Mitbenutzung oder eigentumsorientiert (owner-oriented), Rechte an den Datenbeständen, Rechte an der Software oder anderen Entwicklungen, End- und Zwischenversionen, Beschränkungen der Rechte und der Nutzung, Nutzung von Open Source an welchen Stellen und mit welchen Einschränkungen, etc.
Unter gewissen Umständen sind bestimmte Aspekte des Wettbewerbs- und Kartellrechts zu beachten. Ein möglicher Lock-in-Effekt für Unternehmen oder Verbraucher kann bestehen und muss vermieden werden. Bei Kundendaten muss unter Umständen die Datenportabilität sichergestellt werden.
Das deutsche Zivil- und Vertragsrecht bietet ein flexibles und präzises Instrument, um das Projekt und die Rechte für alle Beteiligten zu sichern. Die Vertragsgestaltung orientiert sich an den ausgereiften Regelungen des deutschen Bürgerlichen Gesetzbuches (BGB) und bietet so viele individuelle Gestaltungsmöglichkeiten wie nötig. Standard-Software-Entwicklungsverträge werden nach deutschem Recht häufig als so genannte „Werkverträge“ ausgestaltet, bei denen es auf eine klare Definition von Aufgaben und Zielen ankommt, mit einer festen Vergütung, die bei erfolgreicher Abnahme fällig wird. Bei einem agilen Projekt ist es dagegen häufiger der Fall, dass die Arbeit für einen bestimmten Zeitraum vereinbart wird und die Vergütung nach Zeit und Aufwand erfolgt. Dies wäre ein typischer Dienstvertrag nach deutschem Recht. Angesichts der wiederholten Iterationen kann dieser häufig als eine Art Rahmenvertrag mit Dienstvertragscharakter ausgestaltet werden, wobei die einzelnen Iterationen einen auf ein „Arbeitsergebnis“ gerichteten, werkvertraglichen Charakter haben. Es gibt sowohl bewährte Klauseln als auch individuell angepasste Lösungen.
In der Praxis hat es sich bewährt, den Vertragsanwalt frühzeitig in das Projekt einzubeziehen. Der agile Anwalt kann die Rechtsberatung in den Prozess des Kunden oder Klienten integrieren. Dabei können die (rechtlichen und praktischen) Anforderungen und User Stories gemeinsam mit dem Kunden entwickelt werden. Der Vertragsanwalt kann als Teammitglied mitarbeiten. Die Fakten über Daten, Werkzeuge, Prozesse, Rechte und Funktionalitäten können sich laufend ändern, und dementsprechend sollte die vertragliche Grundlage von Anfang an so gestaltet werden, dass sie dies berücksichtigt – oder, wenn nötig, laufend angepasst wird. Dabei müssen Geschwindigkeit der Ausführung und Genauigkeit bei der rechtlichen Überprüfung in Einklang gebracht werden.
Wir bieten professionelle Dienstleistungen bei der Vertragsgestaltung und Beratung für agile Softwareprojekte in Deutschland und auf internationalen Märkten.