Definition von Legacy-Software
Der Begriff Legacy-Software bezeichnet ein existierendes Software-System mit folgenden Eigenschaften:
Wichtig fürs Unternehmen: Ein Software-System ist wichtig für ein Unternehmen, wenn ein Abschalten des Systems massive Auswirkungen auf den Geschäftserfolg des Unternehmens hätte. Die Auswirkungen können entweder interner Natur sein, z.B. durch die Störung interner Arbeitsabläufe, wie Personal- oder Einkaufsplanung. Oder die Auswirkungen sind externer Natur, so dass der Wegfall der durch das System erbrachten Dienstleistung zu massiven Umsatzeinbußen führen würde.
Änderungsdruck: Auf das System wirkt Änderungsdruck. Dieser ist entweder fachlicher Natur, wie z.B. die erforderliche Anpassung an geänderte Geschäftsprozesse. Oder der Druck ist technischer Natur, wie gestiegene Sicherheitsanforderungen und der Bedarf, die Software auf mobilen Endgeräten zu betreiben.
Schwer änderbar: Das Software-System lässt sich schwer ändern oder erweitern, da Änderungen lange dauern und Regressionen erzeugen. Die dadurch entstehenden Kosten sind so hoch, dass sie betriebswirtschaftlich zweifelhaft sind.
Ist eine der drei Eigenschaften nicht erfüllt, dann ist das System keine Legacy-Software. Es reicht also nicht aus, dass das System alt oder in COBOL programmiert ist, wenn es sich ändern lässt. Hingegen kann ein junges, aber nur schwer änderbares System durchaus in die Kategorie der Legacy-Systeme fallen.
Der Betrieb eines Legacy-Systems führt zu folgendem Dilemma: Auf der einen Seite ist das System schwer änderbar, auf der anderen Seite muss das System aufgrund existierenden Änderungsdrucks geändert werden. Wird dem Druck nicht nachgegeben, kann das System den fachlichen Wert mittelfristig nicht mehr liefern, was zur existenziellen Gefahr fürs verantwortliche Unternehmen wird. Ein Ausweg aus dem Dilemma ist die Durchführung einer Software-Modernisierung.
Strategien zum Umgang mit Legacy-Software
Für den Umgang mit Legacy-Software bieten sich vier Strategien an:
Recycling
Das Unternehmen verdient längst mit einem anderen System Geld, muss das Altsystem aber ohne essenzielle Einnahmen weiter betreiben, weil es z.B. Verträge mit Kunden gibt, die das System nutzen. Recycling bedeutet die Ablösung des Systems mittels kreativer Lösungen, wie z.B. die Auflösung bestehender Kundenverträge.
Software-Wartung
Das System muss weiter betrieben werden, generiert aber nur wenig Einnahmen und wird mittelfristig nicht weiterentwickelt. Wartung bedeutet die Stabilisierung des Systems und dessen Infrastruktur, so dass Bugs weiterhin sicher und schnell gefixt werden können, dass System aber nicht hinsichtlich seiner Erweiterbarkeit optimiert wird.
Software-Modernisierung
Das System ist unternehmenskritisch und wird kontinuierlich geändert und erweitert. Feature-Neuentwicklung ist zwingend erforderlich. Modernisierung beinhaltet neben der Stabilisierung des Systems dessen Refactoring, so dass sich zukünftig neue Features mit vertretbarem Aufwand implementieren lassen.
Software-Rewrite
Das System steht vor dem Aus, weil z.B. die Hardware nicht mehr existiert und sich nicht virtualisieren lässt. Andere Gründe können sein, dass die verwendete Programmiersprache ausläuft oder es keine Cobol-Programmierer mehr gibt. Rewrite bedeutet die Neuentwicklung des Systems mit modernen Werkzeugen und Programmiersprachen.
Auswahl einer Legacy-Strategie
Die Auswahl der passenden Strategie wird im Wesentlichen von zwei Faktoren bestimmt: Fitness und Geschäftswert. Fitness beschreibt den technischen Gesamtzustand des Systems resultierend aus gewichteten Einzelkriterien, wie z.B. Code-Qualität, Regressionsrate oder Grad der Automatisierung. Geschäftswert beschreibt den Beitrag des Systems an der Wertschöpfung des Unternehmens. Beispielsweise trägt das Banking-Portal einer Online-Bank in hohem Maße zur Wertschöpfung der Bank bei und hat deshalb einen hohen Geschäftswert. Hingegen ist das intern genutzte Bug-Tracking-System von eher geringer Bedeutung und hat einen entsprechend geringen Geschäftswert.
Bei einem System mit geringem Geschäftswert findet wenig oder gar keine Weiterentwicklung statt. Hat das System zudem eine niedrige Fitness, dann ist das System ein Recycling-Kandidat, da z.B. die Betriebskosten aufgrund der hohen technischen Schuld deutlich über dem Nutzen des Systems liegen. Bei Systemen mit niedrigem Geschäftswert, aber hoher Fitness, kann es hingegen sinnvoll sein, diese in den Wartungsmodus zu überführen, da es sich lohnt, den geringen Geschäftswert aufgrund der niedrigen Betriebskosten zu erhalten.
Systeme mit hohem Geschäftswert sind i.d.R. unternehmenskritisch, d.h. sie sind maßgeblich an der Wertschöpfung des Unternehmens beteiligt. Hat das System zudem eine hohe Fitness, dann ist alles in Ordnung und das System kann ohne größere Sanierungsmaßnahmen weiterentwickelt werden. Verfügt ein System mit hohem Geschäftswert über nur geringe Fitness, dann lohnt es sich, über eine Modernisierung oder Neuentwicklung nachzudenken.