Die Altlasten sind uns zwar nicht lieb - aber teuer Individualprogramme gehoeren nicht zwangslaeufig zum Abfall

10.02.1995

Von Arnd Paehlig*

Dass die allermeisten Computerprogramme, die vor zwanzig Jahren und laenger fuer die spezifischen Beduerfnisse eines Unternehmens entwickelt wurden, nicht mehr zeitgemaess sind, sei nicht bestritten. Zu bezweifeln ist jedoch, dass alle alten Programme ueber Bord geworfen und die Investitionen in den Wind geschrieben werden muessen.

Die Schlagzeilen der Fachzeitschriften kuenden regelmaessig von Unternehmen, die sich fuer die Abloesung ihrer Altsysteme durch neue, modernere Standardanwendungssoftware entschieden haben. Doch Software ist ein viel zu wertvolles Gut, als dass man es einfach wegwerfen wuerde. Nirgends sonst ist soviel Know-how und Wissen eines Unternehmens gespeichert wie in Anwendungsprogrammen.

Allein in Deutschland haben Unternehmen mehr als 50 Milliarden Mark in diesen Softwarebestand investiert. Die Entscheidung, die vorhandenen Anwendungen gegen voellig neue Programme auszutauschen, faellt haeufig in einer Art Torschlusspanik. Jahrelang hat man stillschweigend zugesehen, wie der Aufwand fuer Wartung und Pflege zunahm und die Programme dabei immer undurchsichtiger wurden. Es existieren unzaehlige Studien darueber, dass das Wartungsproblem allmaehlich die Kapazitaeten der DV-Abteilung auffrisst. Auch die Prinzipien sind bekannt, wie man Programme warten und pflegen sollte.

Radikaler Schnitt die letzte Rettung?

Heute sehen sich viele Unternehmen mit der Tatsache konfrontiert, dass die urspruenglichen Programmierer des Systems laengst nicht mehr im Haus sind und die Wartungsingenieure der naechsten und uebernaechsten Generation keinen Ueberblick ueber die Funktionen und Strukturen des Systems haben. Deshalb wollen viele nicht laenger zuwarten und sehen in der Anschaffung neuer Systeme die letzte Rettung.

Drei Dinge bleiben dabei haeufig ausser Betracht: Erstens ist der Investitionsaufwand fuer Neusysteme zu hoch, als dass man den alten Bestand ohne weiteres in den Papierkorb werfen koennte. Trotz neuer Tools und Methoden zeigt sich, dass Anwendungsentwicklung ein in aller Regel sehr aufwendiges Unterfangen ist. Auch die Einfuehrung von Standardsoftware dauert oft laenger als geplant und endet mit einer ganzen Reihe von eigenentwickelten Ergaenzungen, die wiederum zu pflegen sind.

Zum zweiten gibt es keine Garantie dafuer, dass die neuen Systeme besser sind als die alten, die ja ueber Jahrzehnte hin optimiert wurden. In einigen Faellen ueberraschen die modernen Systeme etwa durch einen hohen Verbrauch an Hardwareressourcen. Und drittens hilft alle Erneuerung nur zeitbegrenzt, wenn sich nicht grundsaetzlich die Haltung zur Qualitaet und zum Lebenszyklus einer Software aendert.

Erst Pruefung des Softwarebestandes

Anstatt nach einer schnellen und mitunter sehr kostspieligen Loesung zu suchen, sollten die Unternehmen zunaechst Klarheit ueber ihren Softwarebestand gewinnen. Denn ein Grundproblem besteht darin, dass oft gar nicht bekannt ist, was in den Programmen steckt und welche Programmteile heute ueberhaupt noch regelmaessig genutzt werden. Nicht selten kann man alte Programme um die Haelfte oder mehr abspecken, weil die Benutzer diese Jobs gar nicht mehr aufrufen, womit sich das Wartungsproblem gleich deutlich reduziert.

In solchen Projekten mit Wartungsaudits kann man regelmaessig Ueberraschungen erleben. In einem Fall war ein Drittel der Programme irgendwann dupliziert worden, in einem anderen stellte sich heraus, dass eine ellenlange Befehlsfolge voellig inhaltsleer war, nur noch aus "If-when"-Abfragen bestand. Haeufig gibt es Probleme bei der Identifikation von Fehlerquellen, weil das Programm an einer anderen Stelle modifiziert worden war als angenommen.

Fazit: Die Unternehmen wissen recht wenig ueber ihre Programme, koennen Aufwand und Ziele von Wartungsaktivitaeten daher nicht abschaetzen. So haben sie auch keine Messlatte fuer die Qualitaetssteigerung. Es ist zwar einleuchtend, dass ein Programm, immer wenn es von einem Wartungsprogrammierer angefasst wird, ein bisschen besser werden sollte. Doch woran will man dies messen?

Ein Audit fuehrt zunaechst zu einer klaren Beschreibung des Ist- Zustands und ermittelt ausserdem das Nutzen- und Verbesserungspotential der Altprogramme. Dabei werden die organisatorischen und technischen Ablaeufe unter die Lupe genommen, die vorhandenen Dokumentationen bewertet, der Sourcecode analysiert wie auch die Datenbanken inspiziert. Der Markt bietet heute leistungsstarke Tools, die unstrukturierten Programmtext verhaeltnismaessig schnell und einfach analysieren.

Wenn sich ein Unternehmen nach einem Audit entscheidet, wie es mit den Altprogrammen weiter umgehen will, kann es schwerwiegende Fehlentscheidungen vermeiden. Auf dieser Grundlage lassen sich einigermassen gesicherte Angaben ueber den Aufwand fuer Nachdokumentation, Qualitaetssteigerung durch Re-Engineering und die weitergehende Wartung machen. Entscheidet sich das Unternehmen fuer die Beibehaltung der Altprogramme, kann der Effekt von Wartungsarbeiten dank der Ergebnisse aus dem Audit eindeutig beziffert werden.

In Deutschland ignorieren viele Anwender die Re-Engineering- Technologien, was sehr aufschlussreich fuer das Qualitaetsbewusstsein bei Software ist. Man geht nicht davon aus, dass Wartung und Pflege zum Lebenszyklus einer Anwendungssoftware gehoeren. So werden Programme immer wieder reanimiert, aber nicht gruendlich modifiziert. Dabei zeigen Erfahrungen aus anderen europaeischen Laendern, dass Re-Engineering zu signifikanten Verbesserungen wie erhoehter Benutzerfreundlichkeit sowie kuerzeren Ausfall- und Durchlaufzeiten fuehren kann.

Ein interessanter Vorteil ist, dass Re-Engineering die Wartung alter Software personenunabhaengig macht. Diese Aufgabe laesst sich spaeter leichter an externe Programmierer vergeben. Hier hoert man immer wieder den Einwand, dass Externe vielleicht weniger loyal sein koennten. Doch auch bei Standardsoftware gibt man den Wartungsauftrag ausser Haus, in diesem Fall an die Herstellerfirma, die mit neuen Releases fuer die Softwarepflege sorgt. Damit sei nicht gegen die Einfuehrung modernerer Softwaresysteme argumentiert, sondern vielmehr das Augenmerk auf ein altes Ziel der Software-Ingenieure gelenkt: Wartbarkeit und Wiederverwendbarkeit von Software.

Wartung koennte eines der zentralen Themen der naechsten Jahre unter dem Gesichtspunkt des Softwarelebenszyklus sein. Zum einen, weil die Software-Investitionen seit Entstehen der DV-Anwendungen einfach zu umfangreich sind, als dass man die Altprogramme wegwerfen koennte. Zum andern aber auch, weil sich Anwendungsprogramme dynamisch den organisatorischen Veraenderungen in den Unternehmen anpassen muessen. Und das heisst nichts anderes, als dass Software kontinuierlich zu modifizieren ist.

Die Methoden und Werkzeuge, um Softwarewartung professionell durchzufuehren, bietet der Markt heute an. Die Anbieter entwickeln sogar ganze Wartungsumgebungen, sogenannte Maintenance- Workbenches, um den Lebenszyklus eines Anwenderprogramms zu verlaengern.

* Arnd Paehlig ist Leiter Kompetenzcenter TPM der Ploenzke Informatik GmbH.