Foto von wayhomestudio auf Freepik

IT-Verträge –

3.1.2025

Vertragsgestaltung bei agiler Softwareerstellung vs. Wasserfallmodell

Softwareentwicklung erfordert heutzutage zumeist eine Flexibilität, die das klassische Wasserfallmodell mit werkvertraglichen Grundlagen nicht bietet. Daher wird auch in der Softwareentwicklung immer mehr nach agilen Methoden wie z. B. Scrum oder Kanban verfahren.

Anders als beim Werkvertrag, bei der vor Projektbeginn alles genau durchgeplant wird, ermöglicht das agile Vorgehen eine flexible und iterative Entwicklung. Doch diese Flexibilität birgt auch Risiken, insbesondere bei der Vertragsgestaltung. Für beide Vertragsparteien – Auftraggeber und Auftragnehmer – stellt sich die Frage: Wie kann ein Projektvertrag gestaltet werden, wenn das Endergebnis zu Beginn nur vage definiert ist?

1. Herausforderungen bei agiler Softwareentwicklung

Agile Softwareentwicklung bietet Vorteile, wenn der Auftraggeber zwar eine grobe Vorstellung vom Ziel hat, jedoch schnell mit der Programmierung beginnen möchte. Die wichtigsten Prinzipien des agilen Vorgehens sind:

Partnerschaftliches Zusammenarbeiten: Die Vertragspartner entwickeln gemeinsam, der Auftraggeber ist in den Entwicklungsprozess involviert bzw. kann sogar der Verantwortliche sein. Agiles Arbeiten erfordert kontinuierliche Kommunikation und laufende Entscheidungen. Die Mitwirkungspflichten des Auftraggebers sind daher vertraglich festzuhalten.

Dokumentation: Der Projektfortschritt muss umfassend und fortlaufend dokumentiert werden. Damit kann im Streitfall belegt werden, dass das Ergebnis den vertraglichen Anforderungen entspricht.

Planungssicherheit: Bei der agilen Softwareprogrammierung sind das Ergebnis und der Aufwand zu Projektbeginn noch unklar. Gleichwohl möchte der Auftraggeber Planungssicherheit hinsichtlich Kosten, Zeit und Ergebnissen.

2. Vertragsarten: Werkvertrag oder Dienstvertrag?

Die Einordnung der agilen Softwareprogrammierung in die klassischen Vertragsarten des Bürgerlichen Gesetzbuches ist schwierig und mit Rechtsunsicherheiten verbunden. Umso wichtiger ist es, die vertraglichen Grundlagen umfassend abzubilden.

Bei der Softwareprogrammierung sind der Werkvertrag und der Dienstvertrag voneinander zu unterscheiden:

  • Werkvertrag: Der Auftragnehmer schuldet ein vorab definiertes Ergebnis. Es wird ein Lastenheft bzw. Pflichtenheft erstellt, um die vertragliche Leistung zu definieren. Jede spätere Abweichung im Verlauf der Programmierungsphase stellt eine Änderung der vertraglichen Leistung dar, muss daher gesondert vereinbart werden und ist ggf. mit Mehrkosten verbunden. Am Ende der Programmierung steht die Abnahme des Ergebnisses, für auftretende Mängel kann das Gewährleistungsrecht greifen.  
  • Dienstvertrag: Hier schuldet der Auftragnehmer lediglich „Bemühungen“ und kein vorab definiertes vornherein ein konkretes Ergebnis, d.h. der Auftraggeber kauft sich - ähnlich wie beim Arbeitsverhältnis - eine Dienstleistung ein. Die Prozessplanung und die Prozessdurchführung obliegen dem Auftraggeber.

Die Vertragspartner können sich bei der agilen Softwareprogrammierung die Vorteile „aus beiden Welten“ zu Nutze machen, indem sie sog. hybride Vertragsmodelle nutzen: Ein Rahmenvertrag regelt die Zusammenarbeit und enthält sowohl dienstvertragliche Elemente für den Entwicklungsprozess als auch werkvertragliche Bestandteile für Teilprojekte. So können einzelne Ergebnisse schrittweise festgelegt und abgenommen werden und beide Vertragspartner haben Planungssicherheit.  

3. Vergütungsmodelle: Fairness für beide Seiten

Die Vergütungsfrage ist bei agilen Projekten besonders schwierig. Auftragnehmer bevorzugen häufig die Abrechnung nach Zeit und Aufwand, um das finanzielle Risiko flexibler Anforderungen zu minimieren. Der Auftraggeber benötigt jedoch Budgetkontrolle und will von vornherein wissen, was sein Projekt „kostet“. Mögliche Lösungen sind:

  • Cap-Modelle: Vergütung nach Aufwand, aber mit einer Obergrenze;
  • Meilenstein-basierte Vergütung: Bezahlung nach Abschluss klar definierter Teilziele;
  • Ergebnisorientierte Modelle: Teilweise erfolgsabhängige Vergütung;
  • Teilung der Mehrkosten, die über eine bestimmte Obergrenze hinaus anfallen.

Der „agile Festpreis“ kombiniert die Agilität der Dienstleistung mit einem festen Budget, denn hier wird im Gegensatz zu einem traditionellen Festpreis nicht der gesamte Projektumfang vorab vollständig definiert, sondern die Entwicklung erfolgt iterativ und flexibel. Allerdings wird ein fester Preis für die Umsetzung eines vereinbarten Umfangs oder Ergebnisses festgelegt, meist basierend auf einer initialen Schätzung des Projektaufwands und der erwarteten Anforderungen. Beim agilen Festpreis wird zwar der Vertragsgegenstand mit seinen wichtigsten Funktionen und Anforderungen vorab grob definiert, Details werden jedoch iterativ erarbeitet und angepasst. Das Budget dafür wird nicht überschritten und die wichtigsten Funktionen zuerst umgesetzt.

4. Nutzungsrechte: Eindeutige Vereinbarungen erforderlich

Die Einräumung von Nutzungsrechten an der Software erfordert besondere Aufmerksamkeit bei der Vertragsgestaltung. Im agilen Prozess entstehen häufig schon an Teilergebnissen urheberrechtlich relevante Werke. Der Vertrag sollte daher regeln:

  • Zeitpunkt der Rechtseinräumung (z.B. bei Teilabnahmen);
  • Umgang mit Miturheberschaft, falls der Auftraggeber erheblich an der Entwicklung mitwirkt.

Klare Vereinbarungen schützen den Auftraggeber davor, später keine ausreichenden Rechte an der Software zu besitzen, obwohl er die Programmierleistung vergütet hat.

5. Zeitplanung: Entwicklungszyklen realistisch definieren

In agilen Projekten erfolgt die Softwareentwicklung in sogenannten Sprints oder Entwicklungszyklen. Diese kurzen, meist zwei- bis vierwöchigen Iterationen ermöglichen es, regelmäßig funktionsfähige Teilergebnisse zu liefern und die Anforderungen dynamisch anzupassen. Dennoch ist es wichtig, im Vertrag realistische Zeitvorgaben zu treffen.

  • Geschätzter Aufwand: Es sollte festgelegt werden, wie viele Entwicklungszyklen voraussichtlich benötigt werden und welcher Zeitaufwand für jeden Zyklus eingeplant ist. Eine grobe Schätzung des Gesamtaufwands hilft, die Erwartungen auf beiden Seiten abzustimmen.
  • Verbindliche Zwischenziele: Der Vertrag sollte Meilensteine definieren, die zu bestimmten Zeitpunkten erreicht werden sollen. Diese können als Orientierungspunkte für den Fortschritt und die Zielerreichung dienen.
  • Pufferzeiten und Anpassung: Da agile Projekte flexibel auf Veränderungen reagieren müssen, sollten Pufferzeiten eingeplant werden, um auf unvorhergesehene Herausforderungen reagieren zu können. Es sollte zudem festgelegt werden, wie Änderungen der Zeitplanung behandelt und dokumentiert werden.

Tipp: Eine regelmäßige Fortschrittskontrolle – beispielsweise in Form von Sprint-Reviews – sollte vertraglich vorgesehen werden, um Abweichungen frühzeitig zu erkennen und gegenzusteuern.

6. Testszenarien: Abnahmekriterien und Dokumentation festlegen

Ein entscheidender Bestandteil jedes Softwareprojekts ist die Qualitätssicherung. Gerade in agilen Projekten, die (fast) ohne klassische Abnahmeprozesse auskommen, ist es wichtig, klare Testszenarien und Abnahmekriterien zu definieren.

  • Definition von Testszenarien: Der Vertrag sollte Regelungen dazu enthalten, unter welchen Bedingungen ein Entwicklungsschritt oder das gesamte Produkt als „abgenommen“ gilt. Dies kann beispielsweise durch funktionale Tests, Leistungstests oder User Acceptance Tests (UAT) erfolgen.
  • Kontinuierliche Tests: Im agilen Prozess sind Tests ein fester Bestandteil jeder Iteration. Der Vertrag sollte regeln, wann und wie Tests durchgeführt werden, z.B. durch „Continuous Integration“ oder automatisierte Testläufe.
  • Dokumentation: Um spätere Streitigkeiten zu vermeiden, sollten die Testergebnisse detailliert dokumentiert und dem Auftraggeber zugänglich gemacht werden. Eine klare Vereinbarung darüber, welche Tests als Grundlage für die Abnahme dienen, ist unerlässlich.
  • Teilabnahmen: Anders als im Wasserfallmodell wird in agilen Projekten häufig nach jeder Iteration ein Teilergebnis geliefert. Eine vertragliche Regelung zur Teilabnahme kann sinnvoll sein, um sicherzustellen, dass der Auftraggeber frühzeitig Feedback geben kann und das Projekt auf dem richtigen Kurs bleibt.

7. Exit-Strategien: Regelungen für den Projektabbruch

Nicht jedes agile Softwareprojekt verläuft wie geplant. Ein Projektabbruch kann aus unterschiedlichen Gründen notwendig werden, z.B. aufgrund von Budgetüberschreitungen, geänderten Anforderungen oder fehlender Zusammenarbeit der Parteien. Um für diesen Fall gewappnet zu sein, sollten Exit-Strategien vertraglich vereinbart werden.

  • Kündigungsrechte: Es sollte festgelegt werden, unter welchen Voraussetzungen der Vertrag von beiden Seiten gekündigt oder beendet werden kann. Beispielsweise könnten wiederholte Verzögerungen, Vertragsverletzungen oder unüberwindbare Meinungsverschiedenheiten als Gründe für einen Abbruch definiert werden.
  • Vergütung bei Abbruch: Regelungen zur Vergütung der bis zum Abbruch erbrachten Leistungen sind unverzichtbar. Der Auftragnehmer sollte Anspruch auf eine proportionale Vergütung haben, während der Auftraggeber die Teilergebnisse nutzen können sollte, für die er bereits gezahlt hat.
  • Übergabe von Arbeitsergebnissen: Eine wichtige Frage ist, in welchem Umfang bereits entwickelte Teile der Software an den Auftraggeber übergeben werden. Hierbei spielen auch die Nutzungsrechte an Code und Dokumentation eine entscheidende Rolle.
  • Dokumentation des Projektstands: Es sollte vereinbart werden, dass der Projektstand beim Abbruch detailliert dokumentiert wird, damit der Auftraggeber die Möglichkeit hat, das Projekt mit einem anderen Anbieter fortzusetzen.
  • Mediation und Schlichtung: Um Streitigkeiten bei einem möglichen Abbruch zu vermeiden, kann die Vereinbarung eines Mediations- oder Schlichtungsverfahrens hilfreich sein.

Fazit: Rechtssichere Verträge für agile Projekte

Agile Softwareentwicklung bietet viele Vorteile, bringt jedoch auch rechtliche Risiken mit sich. Ein ausgewogener Vertrag muss die Flexibilität der agilen Methode berücksichtigen, dem Auftraggeber aber gleichzeitig Planungssicherheit bieten. Mit klaren Regelungen zu Mitwirkungspflichten, Vergütung, Nutzungsrechten und Dokumentation können viele Konfliktpunkte von Anfang an entschärft werden.

Holen Sie frühzeitig rechtlichen Rat ein, um die Vertragsgestaltung individuell auf Ihr agiles Projekt anzupassen. So schaffen Sie die Basis für eine erfolgreiche Zusammenarbeit.

Sprechen Sie uns gerne an

 Sabine Heukrodt-Bauer, LL.M.

Sabine Heukrodt-Bauer, LL.M.

Fachanwältin für IT-Recht,
Fachanwältin für gewerblichen Rechtsschutz,
Rechtsanwältin, Partnerin

 Florian Decker

Florian Decker

Fachanwalt für IT-Recht,
Rechtsanwalt, Partner

Beratungsbedarf?

Lassen Sie sich
zum IT-Recht beraten!

Erstellung von IT-Verträgen

Begleitung von IT-Projekten

Datenschutz-Beratung