Update-Fähigkeit
Update-Fähigkeit bezeichnet die Eigenschaft einer angepassten oder erweiterten Software, neue Versionen des Herstellers oder der verwendeten Programmbibliotheken ohne Nacharbeit an den eigenen Anpassungen übernehmen zu können; sie entscheidet darüber, ob Sicherheitskorrekturen und neue Funktionen zeitnah im Betrieb ankommen.
Update-Fähigkeit ist das Maß dafür, wie weit ein [[customizing|Customizing]] die Wartbarkeit einer Standardsoftware erhalten hat, und betrifft ebenso Eigenentwicklungen, die auf fremden Bausteinen aufsetzen.
In einfachen Worten
Ein Hersteller veröffentlicht laufend neue Versionen: kleine Korrekturen, Sicherheitsupdates und größere Versionssprünge mit geänderten Funktionen. Eine Software ist update-fähig, wenn diese Versionen eingespielt werden können, ohne dass eigene Anpassungen brechen oder neu programmiert werden müssen. Das gelingt, solange Anpassungen nur über Wege laufen, die der Hersteller über Versionen hinweg stabil hält: Einstellungen, dokumentierte Schnittstellen und vorgesehene Erweiterungspunkte. Greift eine Anpassung in den Programmcode ein oder nutzt sie interne Funktionen, die der Hersteller jederzeit ändern darf, muss sie bei jeder neuen Version geprüft werden. Für Eigenentwicklungen gilt dasselbe: Auch sie bestehen aus fremden Programmbibliotheken und Laufzeitumgebungen, die regelmäßig aktualisiert werden müssen. Die Update-Fähigkeit geht selten auf einmal verloren. Meist summieren sich über Jahre kleine Eingriffe, bis ein Update so aufwendig wird, dass es verschoben wird, und mit jeder Verschiebung wächst der Abstand zur aktuellen Version.
Wozu brauche ich das?
Update-Fähigkeit ist ein Auswahlkriterium bei der Einführung und ein Prüfkriterium bei jeder späteren Erweiterung. Sie betrifft Shop-Systeme, Content-Management-Systeme, Warenwirtschaften und jede Anwendung, die Sicherheitsupdates erhält. Vor jeder Anpassung stellt der Betrieb deshalb zwei Fragen: Über welchen Weg läuft sie, und bleibt dieser Weg im nächsten Versionssprung erhalten? Das Patch-Management setzt voraus, dass Updates ohne Umbau eingespielt werden können.
Beispiel aus der Praxis
Ein Onlinehändler für Fahrradteile betreibt seinen Shop seit mehreren Jahren auf einem Shop-System, dessen Bestellvorgang ein früherer Dienstleister direkt im Programmcode umgebaut hatte, um eine Sperrgutpauschale zu berechnen. Als der Hersteller eine Sicherheitslücke im Bestellvorgang schließt, lässt sich das Update nicht einspielen, weil es den Umbau überschreiben würde. Der Shop läuft mehrere Wochen mit bekannter Lücke, bis ein Entwickler die Pauschale als Erweiterung neu gebaut hat, die über die vorgesehene Schnittstelle für Versandregeln angebunden ist. Seitdem spielt der Händler Updates wenige Tage nach ihrem Erscheinen ein, jeweils nach einer Datensicherung und einem Test der Bestellstrecke in einer getrennten Umgebung.
Wirtschaftlicher Nutzen
Eine update-fähige Software bleibt sicher und erhält neue Funktionen des Herstellers ohne Zusatzprojekt. Geht die Update-Fähigkeit verloren, entstehen drei Kostenarten: der Umbau vor jedem Update, das Sicherheitsrisiko während der Wartezeit und am Ende ein großer Versionssprung, der einem Neuprojekt gleichkommt. Die Kosten einer sauberen Anpassung fallen einmal an; die Kosten der verlorenen Update-Fähigkeit wiederholen sich mit jeder Version.
Typische Fehler
- Programmcode des Herstellers direkt geändert, weil der vorgesehene Erweiterungsweg aufwendiger erschien.
- Updates verschoben, bis mehrere Versionen aufgelaufen sind und der Sprung einem Neuprojekt gleicht.
- Erweiterungen aus unbekannten Quellen eingesetzt, deren Anbieter keine neuen Versionen mehr liefert.
- Keine Testumgebung vorgehalten, in der Updates vor dem Einspielen geprüft werden.
- In der Service-Level-Vereinbarung nur die Fehlerbehebung festgelegt und das Einspielen von Updates offengelassen.
Worauf achten?
- Anpassungen nur über Einstellungen, dokumentierte Schnittstellen und vorgesehene Erweiterungspunkte umsetzen lassen.
- Jede Erweiterung mit Anbieter, Version und Pflegestatus in einer Liste führen.
- Updates zuerst in einer Testumgebung einspielen und die wichtigsten Abläufe durchspielen.
- Einen festen Rhythmus für Updates vereinbaren und Sicherheitsupdates außerhalb des Rhythmus umgehend einspielen.
- Vor der Auswahl eines Produkts erfragen, wie lange der Hersteller ältere Versionen mit Sicherheitsupdates versorgt.
Häufig gestellte Fragen
Was bedeutet Update-Fähigkeit bei Software?
Die Eigenschaft, neue Versionen des Herstellers einspielen zu können, ohne dass eigene Anpassungen brechen oder neu programmiert werden müssen.
Warum verlieren angepasste Systeme ihre Update-Fähigkeit?
Weil Anpassungen in den Programmcode eingreifen oder interne Funktionen nutzen, die der Hersteller jederzeit ändern darf. Jede neue Version muss dann gegen diese Eingriffe geprüft werden.
Wie lässt sich die Update-Fähigkeit wiederherstellen?
Die Eingriffe in den Kern werden erfasst und als Erweiterungen über vorgesehene Schnittstellen neu umgesetzt. Danach wird der Rückstand auf die aktuelle Version schrittweise aufgeholt, jeweils mit einem Test in einer getrennten Umgebung.
Betrifft Update-Fähigkeit auch Individualsoftware?
Ja. Eigenentwicklungen bauen auf Programmbibliotheken und Laufzeitumgebungen auf, die ebenfalls aktualisiert werden müssen. Bleiben diese Bausteine veraltet, entstehen dieselben Sicherheits- und Umbaurisiken.