Was sind die rechtlichen Probleme rund um Server- und Infrastruktur in der Systementwicklung?
IT-Systeme, die in Unternehmen eingesetzt werden, werden in gewisser Weise erstellt, indem Spezifikationen und Design-Dokumente erstellt und der entsprechende Quellcode geschrieben wird. Aber nicht nur diese weichen Aspekte, sondern auch die physischen Computer, also die Infrastruktur, ermöglichen es dem System, tatsächlich zu funktionieren. In diesem Artikel werden wir rechtliche Fragen erörtern, die eng mit dem Bereich der Infrastruktur in Systementwicklungsprojekten verbunden sind.
Was ist die Infrastruktur in IT-Systemen?
Techniker, die Systementwicklung durchführen, werden als Systemingenieure (SE) bezeichnet. Entwicklungsprojekte beginnen mit den Upstream-Prozessen wie der Erstellung von Spezifikationen und Design-Dokumenten, gefolgt von der Implementierung des Programms und dessen Test. Im weitesten Sinne kann man sagen, dass ein Systemingenieur (SE) ein Techniker ist, der alle diese notwendigen Aufgaben übernimmt. Je nach Unternehmen oder Arbeitsplatz kann es jedoch sein, dass die Bezeichnungen je nach Aufgabenbereich und Zuständigkeitsbereich weiter differenziert werden. Der Begriff Infrastruktur-Ingenieur bezeichnet einen Techniker, der insbesondere für die Einrichtung der physischen Computerbetriebsumgebung in Zusammenhang mit der Entwicklung und dem Betrieb von IT-Systemen verantwortlich ist. IT-Systeme, die in Unternehmen oder am Arbeitsplatz verwendet werden, sind in gewisser Weise abstrakte Konstruktionen, die aus Kombinationen von Quellcodes bestehen. Damit dieses System jedoch seine erwartete Rolle erfüllen kann, ist der Aufbau einer Infrastrukturumgebung, einschließlich Server und Netzwerk, unerlässlich. Die Praxis der Systementwicklung wird durch die Kombination der Implementierung von Programm-Quellcodes und der Einrichtung der Infrastrukturumgebung, die diese Betriebsumgebung unterstützt, vorangetrieben. Es wird angenommen, dass diese Perspektive wichtig ist, um unvorhergesehene Probleme zu verhindern.
Konkrete Szenarien, in denen Infrastrukturprobleme ein Projekt zum Scheitern bringen
Es kann in der Realität vorkommen, dass man sich in einem Systementwicklungsprojekt zu sehr auf abstrakte Programme und Quellcodes konzentriert und dabei die Perspektive der Infrastruktur vernachlässigt. Allerdings kann ein Zustand, in dem beide Parteien nicht auf der gleichen Wellenlänge sind, auch das Risiko eines Projektscheiterns erhöhen.
Wie Fehler bei der Serverdimensionierung zu Konflikten führen können
Zum Beispiel könnte es passieren, dass nach Abschluss aller Implementierungen und Tests des Programms letztendlich die Leistungsfähigkeit des Servers nicht ausreicht und das System nicht für den praktischen Einsatz geeignet ist. Die Vorhersage, wie viel Last das System in der Betriebsphase tragen kann, und die Anpassung der Infrastruktur an die Größe des Systems wird als “Dimensionierung” bezeichnet. Es gab tatsächlich Fälle, in denen Fehler bei der Serverdimensionierung zu Problemen geführt haben. (Obwohl diese letztendlich durch eine Einigung gelöst wurden, kann dieser Fall als bekanntes Beispiel herangezogen werden.) Weitere Details zur Lösung von Konflikten durch “Einigung” finden Sie im folgenden Artikel.
https://monolith.law/corporate/disputes-related-to-system-development[ja]
Dass ein Konflikt durch eine Einigung gelöst wurde, bedeutet einfach, dass der Streit durch eine “Diskussion” zwischen den beiden Parteien beigelegt wurde. Daher wird der Inhalt der Einigung im Gegensatz zu einem durch ein Gericht gefällten Urteil normalerweise nicht als Präzedenzfall gesammelt und bleibt in der Regel sehr individuell.
Das Wesentliche des Falles ist der Umfang der Verpflichtungen des Anbieters gegenüber unklaren Spezifikationen
Das Wesentliche solcher Konflikte könnte jedoch darin bestehen, “wie weit der Anbieter für Dinge verantwortlich sein sollte, die nicht ausdrücklich in den Spezifikationen angegeben sind”. Unter Berücksichtigung dieses Punktes können Sie viele Hinweise aus dem Inhalt des folgenden Artikels gewinnen.
https://monolith.law/corporate/system-development-specs-function[ja]
In dem oben genannten Artikel wird erläutert, wie weit der Anbieter bei Dingen, die nicht in den Spezifikationen aufgeführt sind, Ermessensspielraum hat und eine Implementierungspflicht trägt. Hier wird erklärt, dass die Geschichte für “Bildschirmseitige” Elemente, die leicht in Anforderungsdokumenten und Grunddesign-Dokumenten visualisiert werden können (im sogenannten “Frontend”-Bereich), und “Logikseitige” Elemente wie Datenmigration (im sogenannten “Backend”- oder “Datenbank”-Bereich) sehr unterschiedlich ist. Mit anderen Worten, es wird angenommen, dass Auftraggeber/Benutzer, die normalerweise keine spezialisierten Kenntnisse über Systementwicklungsprojekte haben, eher für Probleme mit den Spezifikationen im “Bildschirmseitigen” Bereich verantwortlich gemacht werden, da diese leicht zu erkennen sind. Auf der anderen Seite wird angenommen, dass Probleme auf der “Logikseite” eher dem Auftragnehmer/Anbieter zugeschrieben werden. Unter Berücksichtigung dieser Punkte wird angenommen, dass das Problem der Serverdimensionierung ein Bereich ist, der schwer zu erkennen ist, es sei denn, man ist ein Experte auf dem Gebiet der Technik, und daher eher dem Auftragnehmer/Anbieter zugeschrieben wird. Daher, wenn es zu einem vollwertigen Gerichtsverfahren über diesen Punkt kommt, ist es zu erwarten, dass das Urteil eher gegen den Auftragnehmer/Anbieter ausfallen wird, es sei denn, es gibt überzeugende Gründe, die seine Verantwortung entlasten.
Maßnahmen zur Vermeidung von Problemen durch Fehler bei der Serverdimensionierung
Um solche Probleme zu vermeiden, ist es wichtig, die Implementierung von Programmen und die Beschreibung von Quellcodes mit der Infrastrukturumgebung zu koordinieren. Konkrete Maßnahmen könnten folgende sein:
Die Verantwortung für die Serverdimensionierung im Vertrag klar festlegen
Nicht nur in solchen Fällen, sondern auch in vielen Streitigkeiten im Zusammenhang mit Systementwicklungsprojekten, ist oft unklar, wer welche Rolle spielt. Dies liegt oft daran, dass die Rollenverteilung zwischen dem Systementwicklungsexperten, dem Anbieter, und dem Benutzer, der mit den internen Gegebenheiten vertraut ist, unklar ist. Obwohl eine enge Zusammenarbeit zwischen beiden Parteien für den reibungslosen Ablauf des Projekts unerlässlich ist, ist es wünschenswert, die Rollenverteilung und Verantwortungsbereiche im Voraus so klar wie möglich in Verträgen festzulegen.
Die Anforderungen der Entwicklung konkretisieren und das Änderungsmanagement vollständig durchführen
Auch wenn die funktionalen Anforderungen, die ursprünglich realisiert werden sollten, unklar sind, steigt das Risiko von Streitigkeiten. Dies beinhaltet sowohl die Klärung der Spezifikationen in der ursprünglichen Anforderungsdefinition als auch das Änderungsmanagement während des Projekts. Wie man auf Spezifikationsänderungen während des Projekts reagieren sollte, wird im folgenden Artikel ausführlich erläutert.
https://monolith.law/corporate/howto-manage-change-in-system-development[ja]
Wählen Sie ein Entwicklungsmodell, das der Natur des Projekts entspricht
Auch dies hängt eng mit den beiden oben genannten Maßnahmen zusammen, aber es ist wichtig, ein geeignetes Entwicklungsmodell für das Systementwicklungsprojekt entsprechend seiner Natur und Größe zu wählen. Im Allgemeinen, wenn es sich um die Entwicklung eines Systems von einer bestimmten Größe handelt, bei dem die Serverdimensionierung wichtig sein könnte, steigt der Vorteil der Verwendung des Wasserfallmodells, das sich für die Klärung von Spezifikationen und Verantwortungsbereichen eignet. Weitere Details zur Auswahl des geeigneten Entwicklungsmodells unter Berücksichtigung der Natur des Projekts finden Sie im folgenden Artikel.
https://monolith.law/corporate/legal-merits-and-demerits-of-development-model[ja]
Zusammenfassung
Probleme, die ihren Ursprung in der Infrastrukturumgebung für die reibungslose Durchführung von Systementwicklungsprojekten haben, sind oft schwer zu erkennen. Es kann angenommen werden, dass es für Nicht-Technikexperten keineswegs eine geringe Belastung ist, sich auch um Probleme rund um die Infrastruktur zu kümmern. Dennoch könnten präventive Maßnahmen gegen solche Probleme als Erweiterung grundlegender Maßnahmen wie “Klärung der Spezifikationen / gründliches Änderungsmanagement”, “Klärung der Rollen / Verantwortungsbereiche” und “Auswahl eines Entwicklungsmodells, das dem Umfang und Budget des Projekts entspricht”, betrachtet werden. Ein Punkt, den Personen, die sich mit Unternehmensrecht befassen, zunächst verstehen sollten, ist, dass die Grundlagen der präventiven Rechtsarbeit auch auf Infrastrukturprobleme angewendet werden können. Darüber hinaus ist es wichtig für IT-Techniker zu verstehen, dass Infrastrukturprobleme ein ernsthaftes Risiko für das Scheitern des Projekts darstellen können, und die Arbeit reibungslos zu leiten.
Category: IT
Tag: ITSystem Development