Wie stellt man den Stand der Technik sicher? (Part 1 - Ausschreibungen)

Dieser Blog enthält viele Posts, die vertraglich zu berücksichtigende Punkte enthalten - siehe Label Vertragsgestaltung. Diese sollten idealerweise alle berücksichtigt werden, um den Stand der Technik sicherzustellen und spätere Streitereien zu vermeiden. Einige davon lassen sich trivial durch einzelne Sätze in den Verträgen festhalten, andere aber wiederum benötigen tiefergehendes technisches Wissen. Die Vertragsgestaltung einzig den Juristen zu überlassen ist daher nicht zielführend.
Üblicherweise findet man in Softwareverträgen und -ausschreibungsunterlagen einen Passus wie "... muss dem Stand der Technik entsprechen". Das ist eindeutig zu vage, denn der Stand der Technik ist wie geschrieben nirgendwo allgemein definiert, noch den handelndet Personen (auch nicht den Softwaretechnikern) bekannt. Aber auch eine detailierte Beschreibung des gewünschten Standes der Technik macht meist keinen Sinn: Der Stand der Technik ist nämlich ständigen Änderungen unterworfen, sobald er detailiert verschriftlicht wurde, ist er bereits potentiell veraltet. Was also tun?
Einerseits sollten Techniken vertraglich eingefordert werden, die typischerweise zum Stand der Technik beitragen. Dazu gehören beispielsweise verpflichtende Architektur-, Design- und Code-Reviews, der Einsatz von Werkzeugen zur statischen Codeanalyse, technisch sichergestellte Quality-Gates, Architecture Decision Records und die laufende Aktualisierung der verwendeten Libraries und Frameworks. All diese Punkte werden von den Auftragnehmern gerne akzeptiert - dennoch hapert es zumeist bei deren Umsetzung.
Daher sollte andererseits ein unabhängiger Experte beigezogen werden. Dieser sollte nicht nur die geeignete Detailierung des Standes der Technik verantworten, sondern auch die laufende Überprüfung desselben während Entwicklung und Abnahme der Software. Idealerweise übernimmt so ein Experte auch vertraglich vereinbart die Verantwortung und Haftung für den Stand der Technik. Das kann soweit gehen, dass dieser Experte laufend in alle Reviews eingebunden ist, was sich erfahrungsgemäß bei einem Team in der typischen Größe von 7±2 Entwicklern mit wenigen Stunden pro Woche realisieren lässt.
Durch diese beiden Maßnahmen sollte sichergestellt sein, dass 1) der Stand der Technik laufend eingehalten wird und 2), dass es diesbezüglich zu keinen Streitereien zwischen den Vertragsparteien kommt. Da der unabhängige Experte beiden Parteien damit viel Arbeit, Verantwortung und Haftung abnimmt, werden diese beiden Maßnahmen auch üblicherweise von beiden Vertragsparteien gut angenommen.
Fazit: Der Stand der Technik lässt sich - obwohl er laufenden Änderungen unterworfen ist - bereits zum Zeitpunkt der Vertragsgestaltung bzw. Ausschreibung derart definieren, dass er laufend und nachweislich eingehalten wird.
Kommentare
Kommentar veröffentlichen
Wenn du auf meinem Blog kommentierst, werden die von dir eingegebenen Formulardaten (und unter Umständen auch weitere personenbezogene Daten, wie z. B. deine IP-Adresse) an Google-Server übermittelt. Mehr Infos dazu findest du in der Datenschutzerklärung von Google (https://policies.google.com/privacy).