Ratgeber für ISVs

Legacy-Software effizienter warten

Nadine Riederer ist CEO bei Avision, einem auf Software Revival spezialisierten IT-Dienstleister in Oberhaching bei München.
Die Wartung von Altanwendungen ist aufwändig und kostspielig. Mit einigen gezielten Maßnahmen können Unternehmen aber gegensteuern und die Effizienz der Wartung erhöhen.
Durch einen aufgeräumten Quellcode lassen sich Altanwendungen einfacher um neue Funktionen erweitern.
Durch einen aufgeräumten Quellcode lassen sich Altanwendungen einfacher um neue Funktionen erweitern.
Foto: BEST-BACKGROUNDS - shutterstock.com

Wartung verursacht traditionell den höchsten Aufwand im Lebenszyklus einer Software. Das gilt insbesondere für Legacy-Anwendungen, die unternehmenskritisch und oft jahrzehntelang im Einsatz sind. Doch häufig gibt es Optimierungspotenzial. Durch einige gezielte Maßnahmen können Unternehmen die Wartung ihrer Altanwendung möglichst effizient gestalten und dadurch den Aufwand minimieren.

Software in wartbarem Zustand halten

Das A und O für eine effiziente Wartung von Legacy-Software ist, sie permanent in einem wartbaren Zustand zu halten. Ist die Software mit einem Programmierstil entwickelt, der nicht mehr aktuell ist, oder wird sie nicht regelmäßig gepflegt, können so genannte technische Schulden entstehe. Dazu zählt etwa eine unüberschaubare Architektur. Sie erschwert es Unternehmen, den Aufbau der Software nachzuvollziehen - und das wiederum macht es komplizierter, teurer und aufwändiger, die Software um neue Funktionen zu erweitern. Im schlimmsten Fall können Unternehmen sogar überhaupt keine Anpassungen mehr durchführen.

Abhilfe kann hier das so genannte Refactoring schaffen. Dabei handelt es sich gewissermaßen um das "Aufräumen" des Quellcodes. Seine Struktur wird vereinfacht, wodurch er sich leichter lesen und verstehen lässt. Dadurch kann die Software unkomplizierter, schnell und kostengünstiger um neue Funktionen erweitert werden. Um dabei auch die Kosten für das Refactoring möglichst niedrig zu halten, sollte es in kleinen Schritten oder nach dem so genannten Pfadfindermodus betrieben werden: "Hinterlasse den Campingplatz sauberer als du ihn vorgefunden hast".

Das heißt: Wann immer gerade jemand am Code arbeitet und eine Verbesserungsmöglichkeit feststellt, setzt er sie direkt um. So führen viele kleine Änderungen am Ende zu einem besseren Code. Idealerweise integrieren Unternehmen das Refactoring also direkt in den Entwicklungsprozess selbst - so bleibt die Qualität des Quellcode beständig hoch.

Wartung nicht von Weiterentwicklung trennen

Eine weitere Voraussetzung für eine effiziente Wartung von Altsoftware: Die Personen, die sie durchführen, benötigen ein umfassendes Know-how über die Software. Über dieses Wissen verfügen vor allem diejenigen, die sie weiterentwickeln. In der Realität handelt es sich dabei aber oft um unterschiedliche Personen, weil Unternehmen die Weiterentwicklung der Altsoftware selbst betreiben, ihre Wartung aber an einen Dienstleister auslagern. Dadurch werden ineffiziente Know-how-Übergaben erforderlich und viel wertvolles Wissen geht unweigerlich verloren. Warten Personen eine Software, deren Funktion sie nicht wirklich verstanden haben, können sie außerdem viele Fehler gar nicht finden.

Zudem neigen Entwickler, die auch für die Wartung zuständig sind, dazu, Fehler auszubauen, um ihre Wartungsaufwände zu reduzieren. Bei einer Auslagerung der Wartung verpufft dieser Effekt. Aus diesen Gründen sollten Unternehmen Wartung und Weiterentwicklung nicht voneinander trennen. Besser ist es, entweder beides selbst zu betreiben oder beides an denselben Dienstleister zu übertragen.

Technologische Unterstützung nutzen

Darüber hinaus kann auch technologische Unterstützung an vielen Stellen dabei helfen, die Wartung von Legacy-Software effizienter zu gestalten. Das gilt etwa bei Tests. Im Vergleich mit Neuentwicklungen ist die Architektur von Altanwendungen in der Regel deutlich verwobener, weil Komponenten, Libraries und Methodenklassen früher mehrfach genutzt und vererbt wurden. Dadurch existieren zahlreiche Querverbindungen, die zu Problemen führen können, wenn an einer Stelle etwas geändert wird.

Führen Unternehmen im Rahmen der Wartung Anpassungen an einer Altsoftware durch, etwa um Fehler zu beseitigen, sollten sie danach unbedingt die Funktionen der Software testen. Nur so können sie ausschließen, dass eine Anpassung unerwünschte Seiteneffekt hat und keine Funktionen beeinträchtigen. Idealerweise führen Unternehmen dieses Tests mithilfe spezieller Software automatisiert durch. Dann können sie mit weniger Aufwand öfter vorgenommen werden.

Auch das Monitoring ihrer Netzwerke kann Unternehmen bei der Wartung ihrer Altanwendungen unterstützen. Zahlreiche kostengünstige Open-Source-Tools wie Prometheus, Nagios oder Kibana ermöglichen es ihnen, Daten zur Überwachung ihres Netzwerks und seiner Dienste zu erheben, zu analysieren und Unregelmäßigkeiten zu identifizieren.

Auf diese Weise können sie auch Probleme von Altanwendungen aufdecken, die gar nicht in diesen Anwendungen selbst begründet sind. Fehlen beispielsweise in einer Legacy-Software Daten, kann das durchaus auch am vorhandenen Storage-System liegen. Durch die Überwachung des Netzwerks lassen sich solche Fehlerursachen erkennen und müssen deshalb nicht aufwändig - und letztendlich vergeblich - in der Altsoftware gesucht werden.

Nicht zuletzt bietet auch technologische Unterstützung des Enduser-Supports deutliche Optimierungspotenziale. Viele Fragen zu Legacy-Anwendungen, mit denen sich Enduser an den Servicedesk wenden, betreffen Standardprobleme, die schnell und einfach gelöst werden können. Diese Fragen können ohne weiteres Chatbots automatisiert beantworten - und den Enduser-Support des Unternehmens dadurch erheblich entlasten.

Mehr zum Thema:
Wege aus der Legacy-Falle
Umgebungen werden moderner
"Low-Code ist doch eher ein Hype"
Adesso erwirbt Kiwi Consulting
AvePoints neues Partnerprogramm

Zur Startseite