Softwarewartung

Softwarewartung bezeichnet die Pflege und den Betrieb von Altsoftware, die nicht mehr weiterentwickelt wird. Softwarewartung grenzt sich von der Softwaresanierung dadurch ab, dass keine neuen Features entwickelt werden. Änderungen werden nur durchgeführt, wenn dies absolut notwendig ist. In erster Linie sind dies Bugfixes oder Änderungen aufgrund neuer Regeln, wie Währungsumstellungen, neue EU-Richtlinien oder andere neue gesetzlichen Anforderungen.

Wartung

Der Begriff Wartung ist eine von vier Ergebniskategorien der LegacyLab Software-Analyse. Das System ist wichtig fürs Unternehmen und muß laufen, generiert jedoch wenig Einnahmen und wird mittelfristig nicht weiterentwickelt. Eine Software muß z.B. dann weiter betrieben werden, wenn sie der Einhaltung von Gesetzen, wie EU-Verordnungen oder BaFin-Vorgaben dienen. Z.B. muß gemäß der EU-Verordnung 1907 / 2006 jeder europäische Automobilhersteller sicherstellen, dass seine Kunden Einsicht in die in den Fahrzeugen verbauten Chemikalien nehmen können. Typischerweise wird dies über einfache Web-Anwendungen realisiert, deren Datenbestand mit jedem Modellwechsel aktualisiert wird. Die Anwendung schützt die Gesundheit der Autokäufer, trägt aber wenig zum Kerngeschäft des Autoherstellers bei. Die Web-Anwendung muß laufen, wird aber nicht weiter entwickelt.

Incident-Management

Im Zentrum jeder Softwarewartung steht ein effektives Incident-Management. Im Kern besteht dies aus dem Erkennen und Beheben von Störungen unter Minimierung von Ausfallzeiten. Das Ziel jeder Softwarewartung sollte es sein, das Incident-Management soweit zu optimieren, dass dies sowenig wie möglich menschlicher Unterstützung bedarf. Der Schlüssel dazu ist Automatisierung. Zum einen müssen Probleme automatisch erkannt werden und zum anderen möglichst automatisch behoben werden. Einfache Beispiele für automatische Problembehebungen sind Neustarts oder das Löschen von Caches.

Nicht alle Störungen lassen sich auf Betriebsebene lösen. Erfordert das Problem die Änderung des Sourcecodes, dann muß ein effizienter Wartungsprozess sicherstellen, dass der Fix so schnell wie möglich und ohne Seiteneffekte ausgerollt werden kann. Ähnlich wie bei der Software-Sanierung sind hierfür ein automatisiertes Deployment sowie eine ausreichende Testautomatisierung wichtige Voraussetzungen.

Wartungsvertrag

Softwarewartung wird i.d.R. an den Hersteller oder Drittanbieter ausgelagert. Die Bedingungen der Wartung werden in einem Wartungsvertrag geregelt. Im Wartungsvertrag sind Problemklassen und Reaktionszeiten definiert. Z.B. beschreibt die Klasse 1st-Level Probleme, die direkt vom Kunden behoben werden können, während 2nd und 3rd-Level Probleme vom Wartungsanbieter zu erbringen sind.