Programmiercode auf Monitor

Damit ein IT-System läuft und läuft und läuft – Warum Softwarepflege unerlässlich ist

Von Jan Marco Heinz

Gute Software ist nie fertig. In dem Augenblick, in dem eine Softwarelösung in den produktiven Betrieb übergeht, entsteht der Bedarf an Softwarepflege. Es gilt eine Reihe von Maßnahmen umzusetzen, sodass Patches und Updates wie benötigt eingespielt werden können. Auch werden Änderungen oftmals von außen veranlasst. Neue Browserversionen, Sicherheitslücken in beteiligten Softwareprodukten und neue Betriebssystemversionen machen eine stete Überprüfung aller Funktionalitäten erforderlich.

Wird die Softwarepflege hingegen vernachlässigt, kann dies schwerwiegende Probleme nach sich ziehen.  Wie also sollen Pflegeaufwände eingeplant werden, sodass bei vertretbaren wirtschaftlichen und technischen Risiken ein ausreichender Betrieb der Lösung sichergestellt ist?

Definition von Softwarepflege

Der Begriff Softwarepflege wird häufig unterschiedlich interpretiert. Um in diesem Artikel ein einheitliches Verständnis zu erzielen, verwenden wir die folgende Definition:

Softwarepflege umfasst alle Tätigkeiten der Softwareentwicklung, die darauf abzielen, dass die Software auch in der Zukunft alle Anforderungen erfüllt, die aktuell bereits erfüllt werden.

Kurz gesagt erhält eine gelungene Softwarepflege den „Status Quo“, die Lösung kann also unverändert weiterverwendet werden.

Im Unterschied zur Softwarepflege sprechen wir immer dann von einer Änderung (Change), wenn das Ziel der Tätigkeiten der Softwareentwicklung in der Ergänzung, Änderung oder Abschaffung einer oder mehrerer Anforderungen an die Lösung liegt.

Unterschiedlicher Pflegebedarf je Betriebsphase

  • Startphase

    Zu Beginn der Betriebsphase, hier Startphase genannt, können zwei besondere Effekte auftreten:

    Der erste Effekt tritt auf, wenn zum Zeitpunkt des Go-Live nicht alle Anforderungen vollständig erfüllt sind (Inbetriebnahme mit Abweichungen). Wendet man die zuvor getroffene Definition von Softwarepflege auf diesen Effekt an, dann ergibt sich, dass diese Abweichungen formal kein Thema für die Softwarepflege sind (da diese Anforderungen nie erfüllt waren). Deshalb ist es von großer Bedeutung im Go-Live nicht nur Abweichungen funktionaler Natur festzustellen, sondern auch die Abweichungen gegen alle anderen Anforderungen zu erfassen und somit das exakte Ziel der künftigen Softwarepflege zu fixieren.

    Den zweiten Effekt könnte man auch als „Pflegestau“ bezeichnen. Er tritt dann auf, wenn während der Produktionsphase der Individuallösung auftretende Änderungen der Randbedingungen nicht kontinuierlich berücksichtigt werden bzw. aufgrund der vertraglichen Situation nicht einmal berücksichtigt werden dürfen. In diesem Fall entsteht der Bedarf für die Pflege von Software unmittelbar nach der Inbetriebnahme, was gelegentlich Unverständnis auf Seiten des Auftraggebers auslösen kann.

  • Produktivphase / Betriebsphase

    Softwarepflege in der Produktivphase ist inhaltlich ein Standardvorgang. Entscheidend für eine gelingende Pflege ist aber der organisatorische Rahmen. Können und sollen Pflegeaktivitäten mit einer definierten Regelmäßigkeit durchgeführt werden? Können Pflegeaktivitäten parallel, und damit kostengünstiger, mit geplanten Änderungen der Lösung durchgeführt werden? Hängen Pflegeaktivitäten mit einem von der Lösung unabhängigen Releasezyklus anderer Softwarebestandteile zusammen? Die verschiedenen Fragen zeigen, dass eine pauschale Antwort auf die Frage nach dem besten Vorgehensmodell nicht möglich ist – hier gilt es vielmehr einen individuellen und flexiblen Ansatz zu verfolgen.

  • End-of-Life Phase (und darüber hinaus)

    Spätestens in der letzten produktiven Phase der Lösung stellt sich die Frage, ob sich Softwarepflege überhaupt noch lohnt. Schließlich wird die Lösung in naher Zukunft abgeschaltet, weshalb kleinere Abweichungen von den Anforderungen toleriert werden können, um Kosten und Aufwände einzusparen.

    Diese Argumentation ist vollkommen korrekt. Es sollte aber immer das Risiko betrachtet werden, dass sich der Zeitplan der Außerbetriebnahme verzögert (z.B. aufgrund der verzögerten Einführung einer Nachfolgelösung) oder dass ein nicht-produktiver Betrieb der Lösung noch eine gewisse Zeit nach der Außerbetriebnahme nötig ist.

    Denn auch hier lehrt die Erfahrung, dass die Kosten für Pflegeaufwände überproportional ansteigen, wenn diese über einen längeren Zeitraum vernachlässigt wurde.

Fazit

Softwarepflege ist ein essentieller Bestandteil, um dauerhaft die Funktionsfähigkeit und damit die Erbringung des geschäftlichen Nutzens eines Individualsystems sicherzustellen. Da die Pflege nicht im primären Fokus der Fachanwender liegt empfiehlt es sich, bereits mit dem Einführungsprojekt eine Strategie zur begleitenden Pflege entsprechend der eigenen Risikobewertung zu definieren. Gerade für Systeme mit mittlerer bis hoher Geschäftskritikalität lohnt sich über die gesamte Lebenszeit betrachtet eine explizite und regelmäßige Softwarepflege.

Ihr Feedback

Wir freuen uns, dass Sie einen Kommentar hinterlassen möchten. Bitte beachten Sie, dass Kommentare gemäß unserer Datenschutzerklärung moderiert werden.

Die mit * gekennzeichneten Felder sind Pflichtfelder. Ihre Daten werden nicht an Dritte weitergegeben.