Technologien entwickeln sich rasend schnell weiter, täglich erscheinen neue Tools, Software-Systeme und Cloud-Anbieter. Ganz im Gegensatz zu dieser dynamischen Entwicklung steht die altbewährte Unternehmenssoftware: diese wird oft jahrzehntelang verwendet, bis Schwierigkeiten mit der Kompatibilität mit neuen modernen Technologien oder innovativer Hardware auftauchen.
Ist die alte Software nicht mit aktuellen Technologien kompatibel, so handelt es sich dabei um ein Legacy Problem: alteingesessene, überholte Systeme werden mitgeführt, bis sie entweder ersetzt werden können oder müssen.
Was genau ist ein Legacy System?
Der englische Begriff Legacy IT beschreibt ein „Altsystem“, also eine historisch gewachsene Unternehmenssoftware, die aus technologischer Sicht von einer modernen Version abgelöst werden sollte. Legacy-Systeme funktionieren zwar noch, sind aber sehr häufig nicht mit aktuellen Betriebssystemen, Browsern oder IT-Infrastrukturen kompatibel, wodurch sie unter Instabilität leiden.
Legacy Software stellt in vielen Unternehmen die Grundlage für komplexe interne Softwaresysteme dar, die nicht einfach von einem Tag auf den anderen ersetzt werden können. Besonders in der Banken- und Versicherungsbranche, aber auch in vielen anderen Wirtschaftszweigen, sind Legacy Systeme immer noch weit verbreitet.
Zu den häufigsten Programmiersprachen in Legacy-Systemen gehören zum Beispiel COBOL in der betriebswirtschaftlichen Datenverarbeitung, PL/1 auf IBM-Großrechnern, Fortran in der Physik und den Ingenieurwissenschaften oder Natural für kommerzielle Anwendungsprogramme.
Typische Merkmale eines Legacy Systems
Es ist nicht unbedingt das Alter einer Software, das ausschlaggebend für ihre Definition als „Legacy System“ ist, denn auch ein vor längerer Zeit geschriebener Code kann noch voll funktionsfähig sein. Wie also erkennt man ein Legacy System? Einige Charakteristika können sein:
- Die ursprünglichen Entwickler der Software betreuen diese nicht mehr.
- Die Software wurde für ein nicht mehr unterstütztes Betriebssystem implementiert.
- Das System verwendet eine veraltete Programmiersprache.
- Der Code lässt sich gar nicht oder nur mit sehr viel Aufwand abändern.
- Es gibt keine automatisierten Tests und keine Dokumentation für den Code.
Diese Probleme entstehen durch Legacy IT
Je älter sie wird, desto höher wird die Wahrscheinlichkeit, dass Legacy Software Schwierigkeiten verursacht. So verschlingen Altsysteme viele finanzielle und personelle Ressourcen, bremsen Prozesse und stehen der Digitalisierung im Weg. Bereiche, in denen Probleme entstehen können, sind
- die Wartung: unübersichtliche Legacy erschweren für Entwickler die Wartung der Software. Auch das Ausscheiden erfahrener Developer aus dem Unternehmen ist problematisch, da mit ihnen wichtiges Know-How die Firma verlässt.
- die Sicherheit: Wird die Legacy Software nicht mehr vom Hersteller gewartet, gibt es keine Security Updates mehr, wodurch sich äußerst kritische Sicherheitslücken auftun können.
- der Datenschutz: Auch in Bezug auf die DSGVO kann Legacy Software Probleme verursachen, da Vorgaben zur schnellen Datenidentifikation, -extraktion und -löschung nicht berücksichtigt werden.
- die Kompatibilität: Alte und neue Technologien sind oft nicht miteinander kompatibel. So können alte Browser neue Websites nicht anzeigen, während neue Betriebssysteme nicht auf alter Hardware laufen. Die ständige Beseitigung dieser Schwierigkeiten durch Entwickler ist mühsam und ressourcenintensiv.
- die Datenverfügbarkeit: Legacy Systeme erschweren aufgrund komplexer Datenmodelle und -banken die Datenextraktion und damit das Zurverfügungstellen wichtiger Informationen im Unternehmen.
- die Kosten: Der Betrieb eines Legacy Systems führt zu ständig steigenden Kosten. So benötigen Developer für veraltete IT-Infrastrukturen, Codebasen und Programmiersprachen wie COBOL oder Natural spezifische Skills – eine Investition, die das Unternehmen tätigen muss, die aber nur den Status Quo erhält und keine Optimierung hervorbringt.
Warum Unternehmen Legacy-Systeme verwenden
Ein großes Problem beim Austausch von Altsystemen ist der organisch gewachsene Umfang an Softwarefeatures: moderne Standardlösungen können zwar den Großteil dieser Funktionen abdecken, aber trotzdem fehlen oft spezifische Zusatzfeatures oder Schnittstellen. Auch gibt es für die Legacy Software häufig keine genaue Dokumentation zu Anforderungen, Use Cases etc.
Ein weiterer Grund, um am Legacy System festzuhalten, ist, dass dieses von Developern entwickelt wurde, die im Ruhestand sind oder das Unternehmen gewechselt haben – mit ihnen ist wichtiges Produktwissen verschwunden. Neue Entwickler müssen, bevor sie eine passende neue Software schreiben können, den Umgang mit dem alten System erlernen, um seine Funktionen zu verstehen.
Darüber hinaus wurden viele Legacy Systeme für technisch überholte Hardware entwickelt, damit sind auch die zugehörigen Programmiersprachen veraltet. Das Unternehmen müsste also entweder alte Technologien mit der neuen Software verwenden oder die Hardware tauschen. Da dies sehr aufwändig ist, wird häufig das Altsystem weiterverwendet, bis es nicht mehr geht („Never change a running system“).
Selbst, wenn die Vorteile einer neuen Software überwiegen, schrecken viele Unternehmen vor der tatsächlichen Implementierung zurück, wenn die Mitarbeiter*innen sind nicht mit an Bord sind: diese haben sich über viele Jahre hinweg an die Arbeit mit dem Legacy System gewöhnt.
Neue Softwarelösungen für Legacy-Systeme
Ihr Unternehmen verwendet ein Legacy System, Sie möchten aber auf eine moderne Software umsteigen? Dann haben Sie zwei Optionen: die Software-Migration, also die komplette Ablösung des Altsystems durch eine neue Variante, oder das Software-Reengineering, also ein Neuschreiben von Teilen des Legacy Codes oder des gesamten Systems.
Software-Migration
In der Software-Migration wird eine vollkommen neue Software entwickelt, die das Altsystem ersetzt. Die vorhandenen Kundendaten werden in das neue System übertragen – der Datentransfer muss sorgfältig vorbereitet werden, um einen Datenverlust zu vermeiden. Es bietet sich an, das neue Softwaresystem vorzubereiten, und nach dem Datentransfer alle Prozesse nur mehr über die neue Software laufen zu lassen. Dies hat aber auch Nachteile: gibt es Probleme mit dem neuen System, so ist die IT-Infrastruktur des Unternehmens eine Zeit lang lahmgelegt; zusätzlich sind sowohl der Schulungsbedarf als auch die Gefahr eines Datenverlustes hoch.
Als Alternative bietet sich die teilweise funktionale Methode an: hier werden Komponenten schrittweise migriert. Auf diese Weise können Funktionen laufend beobachtet werden, wodurch Auswirkungen von Fehlern vermindert werden können. Während diese Methode mehr Erfolgswahrscheinlichkeit und Sicherheit bringt, benötigt sie aber auch mehr Pflege und Organisation.
Eine weitere Variante ist der vorübergehende Parallelbetrieb beider Softwaresysteme mit zeitgleicher Wartung. Hier können die Leistungen direkt miteinander verglichen werden – dieser Prozess ist allerdings sehr komplex.
Software Reengineering (SRE)
Im Software Reengineering wird die Software entweder in Teilen oder als Ganzes neu überarbeitet, um eine qualitativ hochwertigere und effizientere Lösung zu erhalten.
Hier gibt es verschiedene Ansätze zur Systemoptimierung:
- Refactoring:
Beim Refactoring wird im Code lokal nach schlecht geschriebenen Strukturen gesucht, um diese durch effizientere Lösungen zu ersetzen. So bleibt die Software gut wartbar und der Code nachvollziehbar.
Refactoring wird kontinuierlich und regelmäßig durchgeführt, wodurch es zu einer nachhaltigen Verbesserung der Software kommt. Das bringt aber auch zusätzlichen Aufwand, und ist daher je nach Budget und Auslastung oft nicht praktikabel.
- Reengineering:
Im Reengineering hingegen werden große Teile des Systems oder das Gesamtsystem auf einmal neu geschrieben, um eine effiziente, saubere und technisch optimale Lösung zu produzieren.
Der Aufwand eines Reengineerings ist jedoch hoch und der Prozess langwierig, sodass das Legacy System oft parallel zur Neuschreibung betreut werden muss.
BEKO Solutions unterstützt Ihr Unternehmen bei der Umstellung von einem Legacy System auf eine moderne Softwarelösung. Kontaktieren Sie uns für ein Erstgespräch gerne hier.
Quellen:
https://www.techopedia.com/definition/635/legacy-system
https://www.dev-insider.de/was-ist-software-reengineering-a-1046749/
https://datadrivencompany.de/was-ist-ein-legacy-system-bedeutung-probleme-und-loesungen/
https://www.dev-insider.de/was-ist-legacy-software-a-1045659/
https://whatis.techtarget.com/de/definition/Legacy-Anwendung-Altanwendung