Das Wichtigste in Kürze
- Eine Legacy-Anwendung ist eine veraltete, aber weiterhin geschäftskritische Software, die oft schwer zu warten, zu integrieren und abzusichern ist.
- Typische Probleme sind hohe Wartungskosten, fehlende Sicherheitsupdates, Kompatibilitätsprobleme und eine geringe Anpassungsfähigkeit.
- Die wichtigsten Modernisierungsansätze sind Kapselung über APIs, Rehosting, Refactoring, Reengineering und der Ersatz durch ein neues System.
- Eine Migration in die Cloud ist ein möglicher, aber nicht der einzige Weg zur Modernisierung.
Eine Legacy-Anwendung (auch Altanwendung genannt, siehe Legacy-System) ist ein veraltetes oder überholtes Softwareprogramm, das nach wie vor in Betrieb ist. Die Tatsache, dass das System veraltet ist, heißt zwar nicht, dass es nicht mehr funktioniert, allerdings kann es aufgrund von Kompatibilitätsproblemen mit anderen Anwendungen instabil sein. Die Legacy-Anwendung ist meist deshalb weiterhin im Einsatz, weil sie immer noch wichtige Geschäftsanforderungen erfüllt.
Eine Altanwendung zu ersetzen, ist häufig komplex, kostspielig und mit bestimmten Risiken verbunden. Das kann an der nicht mehr aktuellen Version der Programmiersprache oder des Betriebssystems liegen. So kann das ERP-System eines Unternehmens zwar überholt sein, wird jedoch weiterhin genutzt, da es mit zentralen Prozessen wie Rechnungswesen, Warenbeschaffung, Lagermanagement usw. verknüpft ist, die für das Tagesgeschäft von großer Bedeutung sind. Die Herausforderung besteht also darin, die Legacy-Anwendung zu verbessern, indem man die zugrunde liegende Technologie auf einen aktuellen Stand bringt. Man spricht in diesem Fall von der Modernisierung einer Legacy-Anwendung. In diesem Artikel erfahren Sie, welche Probleme Altanwendungen verursachen, welche Modernisierungsansätze es gibt und wann sich eine Migration in die Cloud lohnt.
Herausforderungen von Legacy-Anwendungen
Die wichtigsten Probleme, die sich aus der Beibehaltung einer Legacy-Anwendung, also einer Altanwendung, ergeben, sind:
- der eingeschränkte Zugriff auf wichtige Daten und Funktionen,
- die Starrheit des Systems, das sich nur schwer an technologische Weiterentwicklungen und neue Businessanforderungen anpassen lässt,
- eine aufwendige Integration in moderne Systeme,
- hohe Kosten für Instandhaltung und Anpassungen,
- die Risiken für Compliance und IT-Sicherheit.
Ein Unternehmen, das eine Legacy-Anwendung weiterhin nutzt, ist aufgrund von Kompatibilitätsproblemen möglicherweise bei der Nutzung neuer Technologien eingeschränkt. Unter Umständen können die in Altsystemen gespeicherten Daten von Abteilungen, die mit neueren Systemen arbeiten, nicht verwendet werden. Es liegt auf der Hand, dass sich dies negativ auf die Performance auswirkt, sodass Konkurrenzunternehmen, die sich auf modernere Informationstechnologie stützen, möglicherweise Wettbewerbsvorteile besitzen.
Oftmals sind Legacy-Anwendungen weiterhin in Betrieb, weil ihr Ersatz mit hohen Kosten verbunden ist. Allerdings sollte man nicht vergessen, dass sich Instandhaltung und Reparatur einer Altanwendung langfristig ebenfalls als kostspielig erweisen können. Legacy-Anwendungen fallen häufiger aus und benötigen mehr Ressourcen. Liefert der Hersteller keine Updates mehr, muss die eigene IT-Abteilung diese Aufgabe übernehmen. Abgesehen von den Kosten für Wartung und Anpassungen verlangsamen Funktionsstörungen von Legacy-Anwendungen die Geschäftstätigkeit und wirken sich damit negativ auf die Performance aus.
Unter Umständen entspricht eine solche Legacy-Anwendung gar nicht mehr den branchenüblichen Normen hinsichtlich Compliance und Datensicherheit. Solche Regelungen können beispielsweise die DSGVO (Datenschutz-Grundverordnung) oder auch besondere Vorschriften für den Umgang mit Gesundheitsdaten (in den USA etwa HIPAA) sein. Legacy-Anwendungen können für Unternehmen Sicherheitslücken darstellen, die der Cyberkriminalität Tür und Tor öffnen. Solche Angriffe können nicht nur den Verlust wichtiger Daten nach sich ziehen, sondern darüber hinaus auch das Vertrauen von Kunden und Partnern stark beeinträchtigen.
Woran erkennt man eine Legacy-Anwendung?
Nicht jede ältere Software ist automatisch ein Problem. Eine Altanwendung wird dann zur Last, wenn mehrere der folgenden Merkmale zutreffen:
- Der Hersteller liefert keine Updates oder Sicherheits-Patches mehr, oder die Anwendung läuft nur auf einem nicht mehr unterstützten Betriebssystem.
- Sie ist in einer Programmiersprache geschrieben, für die kaum noch Fachkräfte verfügbar sind, etwa COBOL oder ältere Versionen von Visual Basic.
- Der Quellcode ist schlecht dokumentiert, und das Wissen über die Fachlogik liegt bei wenigen Personen.
- Neue Schnittstellen zu Cloud-Diensten, mobilen Geräten oder anderen Systemen sind nur mit großem Aufwand möglich.
- Änderungen dauern Wochen statt Tage, und jedes Update birgt das Risiko neuer Fehler.
- Die Benutzeroberfläche ist so umständlich, dass Mitarbeitende auf Excel-Listen oder andere Workarounds ausweichen.
Typische Beispiele sind gewachsene Access-Datenbanken, ältere ERP- oder Warenwirtschaftssysteme, selbst entwickelte Fachanwendungen und monolithische Webanwendungen. Treffen mehrere Punkte zu, lohnt sich eine Bestandsaufnahme: Welche Funktionen werden noch gebraucht, welche Risiken bestehen, und welcher Modernisierungsansatz passt?
Modernisierung einer Legacy-Anwendung
Eine Legacy-Anwendung zu modernisieren bedeutet, eine veraltete und weniger leistungsfähige Software in ein modernes System zu verwandeln, das leistungsstärker und anpassungsfähiger ist. Eine solche Modernisierung ist Teil einer digitalen Transformation, deren Ziel es ist, das IT-System eines Unternehmens an die aktuellen Anforderungen und Normen anzupassen. Damit dieser Prozess gelingt, muss zunächst eine fundierte Strategie entwickelt werden, die der Situation des Unternehmens gerecht wird.
Lösungsansätze für die Softwaremodernisierung
Für die Modernisierung einer Legacy-Anwendung gibt es verschiedene Lösungsansätze. Geeignet ist eine Vorgehensweise, welche die Anforderungen, die erwarteten Ergebnisse und bestehende Budgeteinschränkungen berücksichtigt.
Rehosting
Unter Rehosting (auch Lift-and-Shift-Verfahren genannt) versteht man die Migration einer Legacy-Anwendung in eine neue Umgebung. Bei diesem Verfahren wird die Anwendung ohne Änderungen verschoben, es werden also weder der Quellcode noch die Funktionen verändert. Dies ist vor allem dann empfehlenswert, wenn ein Unternehmen schnell umstellen muss, allerdings kann ein Rehosting nicht das gesamte Modernisierungspotenzial ausschöpfen.
Refactoring
In diesem Fall wird ein veralteter Programmcode optimiert, um die Performance und die Wartungsmöglichkeiten zu verbessern, ohne jedoch grundlegende Features zu verändern. Refactoring ist eine Möglichkeit, um die Leistungsfähigkeit einer Legacy-Anwendung zu steigern.
Reengineering
Beim Reengineering wird die gesamte Softwarearchitektur der betreffenden Anwendung neu konzipiert und an aktuelle Standards angepasst. Es handelt sich dabei um einen komplexen Prozess, bei dem man schrittweise vorgehen sollte.
Der Ansatz kann mit Replatforming verbunden sein, was bedeutet, dass die Anwendung in eine neue Umgebung verlagert wird, um Leistung und Erweiterbarkeit zu verbessern. Diese Vorgehensweise setzt umfangreichere Änderungen am Programmcode voraus.
Ein neues System
Ist ein System vollkommen veraltet, ist oftmals die Implementierung eines neuen Systems die einzige Lösung. Das bedeutet für jedes Unternehmen einen Neuanfang, der mit besonderen Herausforderungen verbunden ist. Während der Umstellung kann es zu Störungen kommen.
Kapselung über Schnittstellen
Bei der Kapselung bleibt die Legacy-Anwendung im Kern unverändert. Ihre Funktionen und Daten werden über Programmierschnittstellen (APIs) für moderne Anwendungen, Portale oder Analysewerkzeuge zugänglich gemacht. Das ist schnell umsetzbar und risikoarm, löst aber die Probleme der Altanwendung selbst nicht. Kapselung eignet sich deshalb vor allem als Zwischenschritt, etwa um Daten aus einem Altsystem in einem neuen Kundenportal anzuzeigen, während die eigentliche Ablösung vorbereitet wird.
Welcher Ansatz passt? Die Optionen im Vergleich
| Ansatz | Aufwand | Geeignet, wenn … |
|---|---|---|
| Kapselung (APIs) | gering | die Anwendung stabil läuft, aber besser angebunden werden muss |
| Rehosting | gering | die Infrastruktur schnell abgelöst werden muss |
| Refactoring | mittel | die Fachlogik stimmt, der Code aber schwer wartbar ist |
| Reengineering | hoch | Architektur und Skalierbarkeit nicht mehr ausreichen |
| Neues System | hoch | eine Standardlösung den Bedarf abdeckt oder die Anwendung nicht mehr zu retten ist |
In der Praxis werden die Ansätze häufig kombiniert. IBM beschreibt die Modernisierung von Legacy-Anwendungen deshalb als schrittweisen Prozess, der mit einer Bewertung des Bestands beginnt.
Vorteile der Softwaremodernisierung
Die Modernisierung einer Legacy-Anwendung steigert ihre Performance und die operative Effizienz des Unternehmens. Die Antwortzeiten sinken, und die Anwender profitieren von einer besseren User Experience. Neue Benutzeroberflächen und Schnittstellen erhöhen die Zufriedenheit von Personal und Kunden.
Der Prozess beinhaltet zudem die Aktualisierung der Sicherheitssysteme und die Anpassung an die geltenden Branchenstandards. Auf diese Weise werden Schwachstellen eliminiert und kostenträchtige Probleme aufgrund mangelnder Compliance vermieden.
Durch die Modernisierung ergeben sich Möglichkeiten, um die Wartungs- und Instandhaltungskosten zu senken. Gleichzeitig lassen sich das Hosting optimieren und die Personalkosten für den Betrieb senken.
Nutzt ein Unternehmen beispielsweise ein Lagermanagementsystem über einen zu langen Zeitraum, dann sinkt dessen Rentabilität nach und nach. Veraltete Anwendungen werden immer langsamer und erfordern immer mehr Wartungsaufwand, um ihre Funktionsfähigkeit zu gewährleisten. In diesem Zusammenhang trägt die Softwaremodernisierung dazu bei, Unterhaltskosten zu senken und die Produktivität der Mitarbeiter zu steigern.
Migration in die Cloud
Unter einer Migration in die Cloud versteht man die Verlagerung von Anwendungen, Daten, Infrastrukturen, Sicherheitssystemen und anderen IT-Komponenten in eine Cloud-Computing-Umgebung. In diesem Fall müssen Sie nicht mehr in teure Hardware für ein Rechenzentrum vor Ort investieren, dieses betreiben und warten, sondern Sie bezahlen stattdessen laufende Betriebskosten. Manchmal wird ein System im bestehenden Zustand migriert, in anderen Fällen wird es gleichzeitig optimiert und in der Folge kontinuierlich modernisiert.
Vorteile der Migration einer Legacy-Anwendung in die Cloud
Eine Legacy-Anwendung in die Cloud zu verlagern, das bedeutet:
- bessere Skalierbarkeit und Erweiterbarkeit,
- einfachere Zugriffsmöglichkeiten,
- mehr Flexibilität,
- geringere Kosten.
Cloud-Lösungen entsprechen den modernen Anforderungen und können bei Veränderungen schnell angepasst werden. Das Unternehmen muss in diesem Fall keine zusätzliche Hardware oder Infrastruktur beschaffen.
Eine Cloud-Anwendung ist rund um die Uhr und von jedem Ort aus zugänglich. Sie steht daher allen Mitarbeitern zur Verfügung, Voraussetzung ist lediglich ein Internetanschluss. Diese Flexibilität verbessert die Zusammenarbeit im Unternehmen und macht Arbeitsabläufe effizienter.
Cloud-Anbieter stützen sich auf fortschrittliche Sicherheitsvorkehrungen wie Datenverschlüsselung, Multi-Faktor-Authentifizierung, Überwachung von Bedrohungen usw. und bieten auch Disaster-Recovery-Optionen (Notfallwiederherstellung) mit mehrfachen Back-ups und verlässlichen Wiederherstellungsmöglichkeiten.
Rechenzentren in der Nähe der Nutzer können zudem die Antwortzeiten verkürzen. Gleichzeitig bietet die Migration in die Cloud die Möglichkeit, neue Features zu ergänzen. Technologien wie Automatisierung, künstliche Intelligenz (KI) und das Internet der Dinge (IoT) können Businessprozessen echten Mehrwert bieten.
Bei Cloud-Diensten bezahlt das Unternehmen in der Regel nur die tatsächlich genutzten Ressourcen. Das ist ein wesentlicher Unterschied zu veralteter Software, die oftmals auf überholter und kostspieliger Hardware betrieben wird. Während eines Migrationsprozesses müssen die IT-Techniker jedoch darauf achten, dass die verfügbaren Ressourcen richtig dimensioniert sind und nicht übermäßig oder unzureichend ausgelastet werden.
Herausforderungen einer Migration in die Cloud
Bei der Migration einer Legacy-Anwendung in die Cloud gilt es, mehrere Herausforderungen zu bewältigen:
- hohe Anfangskosten für Migration und Schulung der Mitarbeiter,
- Akzeptanzprobleme und Widerstand gegen Veränderungen,
- Sicherheit und Compliance.
Die Verlagerung eines überholten Systems in die Cloud kann zunächst nicht unerhebliche Migrationskosten verursachen. Zudem müssen die Mitarbeiter im Umgang mit den neuen Features der Applikation geschult werden. Das kann sich zu hohen Initialkosten summieren, eine Investition, die sich langfristig jedoch auszahlt, da die Migration zahlreiche Vorteile bietet.
Einer der Schlüsselfaktoren für eine erfolgreiche Umstellung ist und bleibt das Change Management. Erstellen Sie eine Strategie, die den Beschäftigten die Umstellung auf veränderte oder neue Arbeitsabläufe erleichtert. Was Datensicherheit angeht, sind Datenschutz und die Einhaltung geltender Regelungen unverzichtbare Punkte. Je nachdem, welche Informationen verarbeitet oder verlagert werden, eignen sich bestimmte Bereitstellungsmodelle (Public, Private oder Hybrid Cloud) besser als andere.
Die Modernisierung von Legacy-Anwendungen ist wesentlich für Unternehmen, die ihre Konkurrenzfähigkeit erhalten möchten. Wenn Sie in Ihrem Unternehmen veraltete IT-Systeme einsetzen, werden Sie Konkurrenten, die auf neue Technologien setzen, nur schwer die Stirn bieten können. Die Migration in die Cloud kann einen ersten, aber wichtigen Schritt für die digitale Transformation Ihres Unternehmens darstellen. Für eine erfolgreiche Umstellung sind allerdings eine strategische Planung und die funktionsübergreifende Zusammenarbeit essenziell.
Häufig gestellte Fragen
Was bedeutet Legacy in der IT?
Legacy bedeutet wörtlich „Erbe“ oder „Vermächtnis“. In der IT bezeichnet der Begriff Systeme, Anwendungen oder Code aus früheren Technologiegenerationen, die weiterhin im Einsatz sind. Eine Legacy-Anwendung ist also eine Altanwendung, die zwar noch funktioniert und oft geschäftskritisch ist, aber auf veralteter Technik beruht und deshalb schwer zu warten, zu erweitern und abzusichern ist.
Was ist Legacy-Code?
Legacy-Code ist Quellcode, der von früheren Entwicklerteams oder älteren Softwareversionen übernommen wurde und nicht mehr aktiv weiterentwickelt wird. Häufig fehlen Dokumentation und automatisierte Tests, sodass jede Änderung riskant ist. Legacy-Code ist ein typischer Bestandteil von Legacy-Anwendungen und wird bei einer Modernisierung durch Refactoring verbessert oder durch neuen Code ersetzt.
Was ist der Unterschied zwischen Legacy-Modernisierung und Cloud-Migration?
Eine Legacy-Modernisierung verändert, wie eine Anwendung aufgebaut ist: Code, Architektur und Benutzeroberfläche werden erneuert. Eine Cloud-Migration verändert, wo sie betrieben wird. Beides lässt sich kombinieren, etwa durch Refactoring während der Migration. Wie Sie dabei vorgehen, lesen Sie in unserem Leitfaden zur Cloud-Migration von Legacy-Anwendungen.
Wann sollte man eine Legacy-Anwendung ersetzen statt modernisieren?
Ein Ersatz ist sinnvoll, wenn eine Standardsoftware oder SaaS-Lösung die benötigten Funktionen abdeckt, wenn der Code kaum noch wartbar ist oder wenn die Modernisierung teurer wäre als eine Neueinführung. Modernisieren lohnt sich dagegen, wenn die Legacy-Anwendung individuelle, wettbewerbsrelevante Fachlogik enthält, die keine Standardlösung abbildet. Eine Bestandsaufnahme von Kosten, Risiken und Nutzen schafft die Entscheidungsgrundlage.
Warum werden Legacy-Anwendungen nicht einfach abgeschaltet?
Legacy-Anwendungen sind oft tief in zentrale Geschäftsprozesse wie Buchhaltung, Einkauf oder Lagerverwaltung eingebunden und enthalten über Jahre gewachsene Daten und Regeln. Ein Abschalten ohne Ersatz würde den Betrieb unterbrechen. Hinzu kommen Kosten, Projektrisiken und der Schulungsaufwand für ein neues System. Deshalb werden Altanwendungen meist schrittweise modernisiert oder abgelöst.