Posts

Posts mit dem Label "Vertragsgestaltung" werden angezeigt.

Welche Technikstandards gibt es?

Bild
Viele Verträge enthalten einen Passus, der beschreibt an welchen Technikstandard sich das zu liefernde Produkt bzw. die Dienstleistung zu halten hat. Hier wird bei Softwareverträgen oft auf den Stand der Technik , die Regeln der Technik oder Normen verwiesen. Das alleine reicht jedoch bei weitem nicht , da weder der Stand der Technik, noch die Regeln der Technik, noch IT Normen gut genug definiert sind, um deren Einhaltung unzweifelhaft festzustellen. Aber es ist zumindest ein grober Hinweis darauf, was diesbezüglich geschuldet wird. Doch wie unterscheiden sich diese Technikstandards überhaupt? Stand der Technik und Regeln der Technik sind juristische Technikklauseln , die in verschiedenen Rechtsgebieten Verwendung finden (z.B. für Gewährleistung oder Schadenersatz). Es wird zwischen folgenden 3 Stufen unterschieden: 1 Regeln der Technik - " technische Regeln, die aus Wissenschaft oder Erfahrung auf technischem Gebiet gewonnene Grundsätze enthalten und deren Richtigke...

Was tun, wenn die Wartung einer Software vorzeitig endet?

Bild
Auch der beste Wartungsvertrag kann nicht verhindern, dass die Wartung vorzeitig eingestellt wird . Sei es, weil der Vertrag ausläuft, die Software aber weiter verwendet werden soll, sei es weil der Auftragnehmer den vertraglich geschuldeten Wartungsleistungen nicht nachkommt oder gar nicht nachkommen kann. Was kann und darf man in so einer Situation tun bzw. wie kann man so eine Situation entschärfen? Hier muss zunächst zwischen Software und Services unterschieden werden: Bei Services, also beispielsweise Software as a Service (SaaS) , wo die Software in der Cloud läuft und als Service angeboten wird, hat man keinen Wartungsvertrag, sondern einen Servicevertrag. Dieser sollte zwar sicherstellen, dass eine laufend gewartete Software als Service zur Verfügung gestellt wird, macht aber üblicherweise keinerlei Zusicherungen hinsichtlich der Lebensdauer des Services. Man hat hier weder technische noch vertragliche Möglichkeiten um Wartung (und Betrieb) der Software zu verlängern: Bei So...

Service Level Agreements für Softwarewartung

Bild
Wartungsverträge sollten Service-Level Agreements  (SLAs) enthalten oder darauf verweisen. Ansonsten ist unklar was, in welchem Umfang, bis wann im Rahmen des Wartungsvertrages gemacht wird. Diese Service-Levels sind üblicherweise pönalisiert um auch ein Druckmittel in der Hand zu haben, wenn sie nicht erreicht werden. Üblicherweise werden die Service-Levels aber derart vereinbart, dass sie zwar leicht zu messen sind, aber dennoch wenig Nutzen haben: Oft sind SLAs gar nicht einhaltbar oder fokussieren auf Dinge, die nichts bringen: SLAs sollten sich nicht an dem orientieren, was möglich ist, sondern daran, was nützlich ist: Beispielsweise macht es keinen Sinn eine höhere Verfügbarkeit als nötig oder Hochverfügbarkeit außerhalb der Betriebszeiten zu vereinbaren. Andererseits bedeutet das, dass SLAs potentiell sehr herausfordernd sein können. Aber nur wenn diese Herausforderungen gemeistert werden, sind die diesbezüglichen SLAs auch nützlich.  → Damit SLAs nützlich sind, müss...

Vertraglicher Umgang mit Fehlern

Bild
Software hat üblicherweise Fehler - auch produktionsreife Software am Stand der Technik muss nicht völlig fehlerfrei sein . Fehler sind Mängel und gehören daher allesamt im Rahmen der Gewährleistung oder Wartung behoben. Doch welche zuerst? Was, wenn ein Fehler sich nicht beheben lässt. Und wie Fehler von Verbesserungswünschen abgrenzen? Das (und viel mehr) fehlt üblicherweise in Wartungsverträgen . Kritische Fehler müssen immer zeitnah gelöst werden. Tatsächlich?  Gemäß IEEE 1 ist die Kritikalität (impact bzw. severity) eines Fehlers: "Die aus Sicht des Software-Engineerings stärkste Auswirkung, die der Fehler hat bzw. haben könnte". Auch die ISTQB berücksichtigt die Kritikalität für Anwender nicht. 2   →  Möchte man sicherstellen, dass für die Anwender kritische Fehler zeitnah gelöst werden, so muss man das vertraglich festhalten. Dabei kann man sich einer Kategorisierung der Fehler nach Fehlerfolgen angelehnt an DIN 55350-31 bzw DIN 40080 bedienen und diesbe...

Ab wann beginnt die Softwarewartung?

Bild
Softwarewartungsverträgen fehlen erfahrungsgemäß viele Vereinbarungen , die für eine gelungene Softwarewartung geklärt werden sollten. Beispielsweise fehlt oft eine Vereinbarung hinsichtlich des Beginns der durch den Wartungsvertrag abgedeckten Wartungstätigkeiten. Dieser Blogpost enthält die diesbezüglich in der Praxis oft angetroffenen Mängel (ohne Anspruch auf Vollständigkeit): Gewährleistung vs. Wartungsbeginn:  Zumindest ein Teil der Wartungstätigkeiten (korrektive und präventive Wartung) sind bereits durch Gewährleistungsansprüche abgedeckt. Diese Ansprüche können auch im B2B Bereich vertraglich nicht ausgeschlossen (nur auf max. 1 Jahr verkürzt) werden.  → Es ist in einem Wartungsvertrag daher sinnvollerweise abzuklären, wie inhaltlich und finanziell während der Gewährleistungsphase mit Wartungstätigkeiten umzugehen ist. Gewährleistung für Mängelbehebung vs. Wartungsbeginn:  Werden - wie bei Software üblich - innerhalb der Gewährleistungsfrist Mängel entdeckt (z.B...

Was fehlt den meisten Wartungsverträgen?

Bild
Wer Software entwickeln lässt, oder Standardsoftware kauft, muss auch mit nicht unerheblichen Wartungskosten rechnen. Diese werden oft vertraglich über einen jährlichen Pauschalbetrag, der sogenannten "Wartungspauschale" geregelt. Doch welche Tätigkeiten umfasst Softwarewartung, egal ob pauschaliert oder nicht? Blöde Frage - das ist ja ohnedies alles vertraglich vereinbart. Nein - ist es leider nicht. Die meisten der folgenden Fragestellungen werden durch die Wartungsverträge, die mir bisher untergekommen sind, nicht geregelt: Umfasst die Wartung neben der korrektiven auch die präventive Wartung  - die Behebung von Fehlern, die dem Auftragnehmer bekannt, aber beim Auftraggeber noch nicht in Erscheinung getreten sind? Umfasst die Wartung auch die perfektionierende Wartung - die Verbesserung von Attributen wie etwa der Usability, Performance oder Wartbarkeit? Darunter fällt u.A. die Behebung von technischen Schulden durch Reengineering, Refactoring usw. Umfasst die Wartung ...

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

Bild
Bei Software ist der Stand der Technik weder allgemein definiert oder bekannt , noch wird er üblicherweise eingehalten . Spätere Streitereien bzw. der Einsatz einer nicht dem Stand der Technik entsprechenden Software mit all den juristischen Problemen für Auftraggeber und Auftragnehmer, sind vorprogrammiert. Man tut also gut daran, bereits bei der Vertragsgestaltung bzw. Ausschreibung den Stand der Technik zu berücksichtigen. 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 -ausschreibung...

Sind Verfehlungen des Standes der Technik grob fahrlässig?

Bild
Im B2B Bereich kann Haftung wegen leichter Fahrlässigkeit ausgeschlossen werden (siehe  §309-310 BGB  bzw.  OGH RS0016582 ). Die Gewährleistung kann bei B2B maximal auf 1 Jahr verkürzt werden und auch hier kommt es auf den Grad der Fahrlässigkeit an. Aus diesem Grund findet man auch in vielen Softwareverträgen den Ausschluss der Haftungs- und Gewährleistungsansprüche bei leichter Fahrlässigkeit. Es stellt sich daher die Frage: "Sind Verfehlungen des Standes der Technik leicht oder grob fahrlässig?" Grobe Fahrlässigkeit ist gesetzlich nicht exakt von leichter Fahrlässigkeit abgegrenzt.  Darunter wird im Allgemeinen folgendes verstanden: Ein Handeln, bei dem die erforderliche Sorgfalt in einem ungewöhnlich hohen Maße verletzt worden ist. Ein Verhalten, das einem ordentlichen Menschen in derselben Situation keinesfalls unterlaufen würde. 1 Wird bei Verfehlungen des Standes der Technik also die erforderliche Sorgfalt in einem ungewöhnlich hohen Mape verletzt? Unterlau...

Aufwand perfektionierender und adaptiver Wartung

Bild
Neben dem nicht unerheblichen  Aufwand für präventive und korrektive Wartung muss man in der IT gemäß IEEE 1  mit Aufwand für perfektionierende (Verbesserung von Attributen wie Performanz, Usability, Wartbarkeit) und adaptive Wartung (Anpassung an veränderte Bedingungen der Umgebung) rechnen. Ansonsten veraltet die Software und muss potentiell schon nach wenigen Jahren durch neue Software ersetzt werden Aufwand perfektionierender Wartung  (Verbesserung von Attributen) Dabei handelt es sich um alle nicht-funktionalen Anforderungen wie beispielsweise Performanz, Usability und Wartbarkeit der Software. Dazu gehört beispielsweise auch sämtliche in der ISO/IEC 25000 Normenreihe beschriebenen Qualitätsanforderungen. In der Praxis sind einige der geforderten Attribute (insbesondere die Wartbarkeit der Software) zum Einsatzzeitpunkt oft nicht erfüllt. Deren Erreichung (bzw. die Erreichung des diesbezüglichen Standes der Technik, wenn diesbezügliche Vereinbarungen fehlen) fäl...

Mit wieviel Aufwand muss man in der Softwarewartung rechnen?

Bild
Softwarewartung ist gemäß IEEE 1 die "Veränderung eines Softwareprodukts nach dessen Auslieferung, um Fehler zu beheben, Performanz oder andere Attribute zu verbessern oder Anpassungen an die veränderte Umgebung vorzunehmen". Daraus lassen sich folgende Aufwandsfaktoren ableiten: Fehlerbeseitigung: Die Beseitigung von beim Anwender auftretenden (korrektive Wartung) bzw. anderweitig bekannten (präventive Wartung) Fehlern. → Kennt man die Anzahl an pro Jahr zu beseitigenden Fehlern und den durchschnittlichen Aufwand für die Fehlerbeseitigung, lässt sich dieser Aufwandsfaktor leicht eruieren. Verbesserungen von Attributen: Die Verbesserung von Attributen wie Performanz, Usability, Wartbarkeit (perfektionierende Wartung). Dazu gehört beispielsweise sämtliche in der ISO/IEC 25000 Normenreihe beschriebenen Qualitätsanforderungen. → Bei einer einsatztauglichen Software müssen diese Attribute alle gemäß Vertrag erfüllt sein. Diesbezüglich ist nur dann Aufwand zu erwarten, w...

Ist der Einsatz von Open-Source Frameworks Stand der Technik?

Bild
Open-Source Frameworks und Libraries werden heutzutage in beinahe jeder Software massiv eingesetzt. 1 Weil etwas alle machen, ist es aber noch lange nicht Stand der Technik. Es stellt sich daher die Frage, ob der Einsatz von Open-Source Frameworks und Libraries dem Stand der Technik entspricht bzw. was dabei zu beachten ist. Beim Einsatz von Open-Source Frameworks und Libraries sind selbstverständlich die 4 Grundsätze des Standes der Technik (Entwicklungsstand, fortschrittlich, bewährt, zielgerichtet)  zu beachten. Ein Großteil der Frameworks und Libraries entspricht demgemäß per se nicht dem Stand der Technik: Viele Frameworks und Libraries sind technisch oder funktional derart veraltet, dass sie nicht mehr dem Entwicklungsstand entsprechen, obwohl sie noch weiter gewartet werden - z.B . RMI-IIOP via  CORBA . Viele wurden schon lange durch ein fortschrittlich eres Framework oder Library ersetzt - z.B. wurde AngularJS 2018  durch Angular ersetzt . Ein Großteil der ...

Muss Freeware bzw. Open-Source Software am Stand der Technik sein?

Bild
Software muss am Stand der Technik sein - ansonsten drohen Gewährleistungs- und Schadenersatzforderungen. Was aber, wenn man Freeware oder Open-Source Software entwickelt? Wer Freeware oder Open-Source Software entwickelt, fühlt sich oft durch die gewählten OS-Lizenzen geschützt. Die Lizenzen müssen dafür aber - wie auch bei kommerzieller Software - expliziter Vertragsbestandteil sein. Eine allgemeine Klausel z.B. in den allgemeinen Geschäftsbedingungen oder ein einfaches Mitschicken der Lizenz mit der Software reicht nicht ( §311 BGB , §879(3) ABGB ). Darüber hinaus kann weder durch Verträge noch Lizenzen jede Art von Haftung und Gewährleistung ausgeschlossen werden: Im B2C Bereich kann weder Haftung noch Gewährleistung ausgeschlossen werden ( §476 BGB ,  §922 ABGB ). Im B2B Bereich kann nur Haftung wegen leichter Fahrlässigkeit ausgeschlossen werden (siehe §309-310 BGB bzw.  OGH RS0016582 ). Die Gewährleistung kann maximal auf 1 Jahr verkürzt werden und auch hier ko...

Sind Kompromisse bei technische Schulden rechtlich ok?

Bild
Oft erkennt man erst im Laufe eines Projektes, dass der Stand der Technik auf Grund technischer Schulden nicht einhaltbar ist, was prinzipiell einsatzverhindernd wäre. Was nun? Zunächst gilt es unmittelbar darauf rechtlich korrekt zu reagieren und gemeinsam mit dem Auftraggeber einen geeigneten Kompromiss zu finden. Oft wird dabei vereinbart, dass der Stand der Technik erst nach der Inbetriebnahme der Software nachgereicht wird. Dabei stellt sich aber folgende Frage: Ist es rechtlich ok, wenn mit dem Auftraggeber vereinbart wird, bestimmte technische Schulden nicht oder erst nach der Inbetriebnahme der Software abzubauen? Prinzipiell spricht nichts gegen beliebige Vereinbarungen zwischen Auftraggeber und Auftragnehmer, solange sie nicht Gesetzen widersprechen . Beispielsweise muss sichergestellt sein, dass die technischen Schulden keinen negativen Einfluss auf die Sicherheit personenbezogener Daten haben, ansonsten wäre ein Einsatz gemäß DSGVO nicht zulässig. Darüber hinaus müssen bei...

Was, wenn man den Stand der Technik nicht einhalten kann?

Bild
Es gibt Situationen, wo es nicht möglich ist Software am Stand der Technik zu entwickeln bzw. zu halten. Das kann vielerlei Gründe haben - z.B. dass der Releasetermin feststeht und bekannte Mängel hinsichtlich des Standes der Technik nicht rechtzeitig beseitigt werden können, oder dass aus fachlichen Gründen Libraries verwendet werden müssen, die selbst nicht dem Stand der Technik entsprechen. Wie kann man in diesen Fällen Gewährleistungs- und Schadenersatzforderungen vermeiden? Zunächst einmal sollte geprüft werden, ob der Stand der Technik tatsächlich nicht erreicht werden kann. Releasetermine sind beispielsweise meist willkürlich festgelegt und eine Verschiebung des Termins ist mehr im Interesse des Unternehmens, als eine zeitgerechte Release einer dann mangelhaften Software. In den meisten Fällen wäre das die wirtschaftlichere Variante . Das lässt sich aber nicht in allen Fällen machen. Was dann? Muss man darauf hoffen, dass die Mängel nicht aufgedeckt werden, keinen Schaden ver...

Widersprechen Technische Schulden dem Stand der Technik?

Bild
"Technische Schulden" sind gemäß Wikipedia "eine in der Informatik gebräuchliche Metapher für die möglichen Konsequenzen schlechter technischer Umsetzung von Software." Sie beschreiben also juristisch gesehen einen versteckten Mangel, der zwar die Erfüllung der funktionalen Anforderungen nicht behindert, aber zu höheren Kosten führt und einklagbar ist . Schlechte technische Umsetzung entspricht auch  nicht dem "auf einschlägige wissenschaftlichen Erkenntnissen beruhenden Stand der Entwicklung", was Voraussetzung für den Stand der Technik wäre. Darum gilt: Software mit technischen Schulden ist mangelhaft und  nicht am Stand der Technik. Viele Informatiker werden nun einwenden, dass es eine schier endlose Zahl an möglichen technischen Schulden gibt: Software kann aus vielen tausenden Zeilen Code bestehen, es gibt Unmengen an technisch mehr oder weniger geeigneten Architekturen , Designs , Architektur- ,  Analyse- und Entwurfsmuster , Libraries und ...

Wieviele Bugs darf eine Software haben? (Teil 1 - Fehlerdichte)

Bild
"Fehlerfreie Software gibt es nicht" - dieser Ausspruch ist zwar nicht korrekt 1 , üblicherweise aber verlangt der Stand der Technik (da er zielgerichtet und somit wirtschaftlich sein muss) keine Fehlerfreiheit bei Software. Aber ist es deshalb ok, wenn eine Software beliebig viele Fehler enthält? Ab wievielen Fehlern gilt eine Software als mangelhaft bzw. nicht einsatzbereit? Die Antwort auf diese Frage lässt sich an Hand der sogenannten Fehlerdichte (en. defect-density ) klären: In der Informatik bezeichnet die Fehlerdichte die Anzahl an Fehlern pro 1.000 Zeilen Code. Die angestrebte Fehlerdichte ist idealerweise vertraglich festgelegt oder zumindest während der Analysephase mit dem Auftraggeber definiert worden. Wenn nicht, gilt der Stand der Technik, der diesbezüglich durch die Fachliteratur klar definiert ist: 2 Unbrauchbar - also nicht einmal für Previews, Teststellungen oder user-acceptance-tests verwendbar - ist eine Software bei einer Fehlerdichte > 10 Produkti...

Muss Software am Stand der Technik gehalten werden?

Bild
Software veraltet schnell. Neue Techniken und Technologien übertreffen bestehende oft nach wenigen Jahren. Neue Versionen der verwendeten Technologien kommen meist in noch kürzeren Abständen (Monate, Wochen) und ersetzen oft zwangsweise (Security-Fixes, Bugfixes, Supportende) die alten Versionen: Software bleibt nur am Stand der Technik, wenn sie auch laufend am Stand der Technik gehalten wird. Die Frage, die sich stellt, ist, ob man aus legalen Gründen Software am Stand der Technik halten muss.  Ist es legal veraltete Software zu betreiben oder im Rahmen der Wartung den Stand der Technik zu vernachlässigen? Die Antwort auf diese Frage ist wie so oft: "Kommt darauf an": Gemäß Datenschutzrecht (vgl.  §32 DSGVO ) ist der Stand der Technik während des gesamten Verarbeitungsvorgangs zu gewährleisten und demnach auf Basis einer Risikobeurteilung fortlaufend anzupassen.  ➝ Der Betreiber einer Software macht sich strafbar, wenn die Software hinsichtlich des Datenschutzrechtes n...
CC BY-NC-SA 3.0 AT Sebastian Dietrich, e-movimento