Rechtliche Herausforderungen bei der Umsetzung von Microservices

Seite 2: Vertragstypologie immer auch abhängig vom Willen der Parteien

Inhaltsverzeichnis

Für die Vertragsgestaltung bei agilen Projekten ist es von besonderer Bedeutung zu wissen, um was für eine Art von Vertrag es sich handelt. Bei Verträgen, die Softwareentwicklung zum Gegenstand haben, wird eine Einordnung als reiner Werk- oder Dienstvertrag auf beiden Seiten meistens der Realität nicht gerecht. In der Gesamtschau der Aufgabenverteilung wird zwar vieles für die Einordnung als Dienstvertrag sprechen: Eine zentrale Steuerung des Projekts beim Auftraggeber und keine Beschaffenheits- oder feste Vergütungsvereinbarung, da es sich um ein stets anzupassendes Produkt handelt. Allerdings sind Auftraggeber schutzlos gestellt, wenn Entwickler die Leistung fehlerhaft oder schlecht erfüllt haben. Bei einem Dienstvertrag ist schließlich lediglich eine Leistung (Programmieren) geschuldet und kein Erfolg (fertiges Softwareprodukt), daher werden Auftraggeber auch zahlen müssen, wenn das Endprodukt nicht vollständig ihren Vorstellungen entspricht.

Den Interessen gerechter ist es wohl, in den einzelnen Entwicklungsabschnitten (Sprints) jeweils einzelne Werkverträge zu sehen und daneben einen Rahmenvertrag abzuschließen, der all diese Sprints in Bezug zueinander setzt. Für eine korrekte Vertragseinordnung ist letztlich auch immer das maßgeblich, was die Parteien tatsächlich wollen. Dieser Wille sollte daher in den einzelnen Vertragsklauseln unmissverständlich zum Ausdruck kommen. Mehrdeutige Formulierungen sind unbedingt zu vermeiden. Stattdessen sollten bewusst vertragstypische Begriffe (zum Beispiel den der Abnahme) genutzt werden.

Im B2B-Bereich sind die Regelungen des BGB für gewöhnlich nicht zwingend. Das bedeutet, dass die Parteien völlig frei hinsichtlich der Vertragsgestaltung sind. Das bringt klare Vor-, aber auch gewichtige Nachteile mit sich: Kommt es zu einer Vertragsüberprüfung durch ein Gericht und enthält der Vertrag unklare Regelungen, wird das Gericht immer auf die gesetzlichen Pendants zurückgreifen und diese nötigenfalls auslegen. Hierbei kann es sich durchaus um für die Parteien unvorteilhafte Regelungen handeln.

Der Grad der Rechtssicherheit eines Vertrags liegt demnach zu einem großen Teil in den Händen der Vertragsparteien. Sie sollten unbedingt auf eine detaillierte Beschreibung der Vertragsmodalitäten achten. Im Fokus stehen unter anderem folgende Fragen: Was wird geschuldet? Ein Gesamtsystem auf Basis einzelner Microservices (eher IT-Systemlieferungsvertrag) oder lediglich einzelne Microservices (eher gewöhnlicher Softwareerstellungsvertrag)? Gleiches gilt für die nachfolgenden Aspekte.

Vor dem Hintergrund der schwierigen vertraglichen Einordnung sollten Auftraggeber und Auftragnehmer nicht vergessen, insbesondere Regelungen zur Abnahme und zur Vergütung zu treffen: Was soll abgenommen werden? Einzeldienste? Ein Gesamtsystem? Sinnvoll sind einzelne (Teil-)Abnahmen, die im Rahmen der Sprint-Review-Meetings erfolgen können. Wie verhält es sich, wenn Auftraggeber einen Microservice oder Teile desselben bereits während des Entwicklungsprozesses nutzen? Hierin kann man durchaus eine Abnahme sehen. Es sollten Regeln für sämtliche Modalitäten hinsichtlich der Abnahme detailliert werden. Hierzu gehören alle Faktoren, die sich auf die Abnahme in irgendeiner Art und Weise auswirken (können).

Gleiches gilt für Vergütungsregelungen: Erfolgt eine Vergütung einzelner Sprints oder eines Gesamtsystems? Was offenkundig erscheinen mag, lässt oftmals reichlich unbeabsichtigten Interpretationsspielraum – mit dem Ergebnis: Rechtsunsicherheit.