Viele Unternehmen weltweit betreiben immer noch sogenannte Legacy Systeme, also Altsysteme, die historisch gewachsen, aber in der Regel nicht mehr zeitgemäß und nutzbar sind. Das kommt euch bekannt vor? Dann ist IT-Modernisierung ein Thema für euch.
Neustart für Legacy-Systeme – aber wie?
Gehen wir der Sache doch einmal mit einem Vergleich auf den Grund: Euer altes System ist wie ein in die Jahre gekommenes Rennpferd. Es hat euch lange gute Dienste erwiesen, euch Geld eingebracht, scheint nun aber nicht mehr erfolgreich mit den Konkurrenz mitlaufen zu können. Was tut ihr? Das Pferd weiterreiten, bis nichts mehr geht?
Auch Legacy Systeme sind in der Regel veraltet und unflexibel. Die genutzten Technologien werden nicht mehr gewartet und die Entwickler des Systems arbeiten meist nicht mehr bei oder für die Organisation – trotzdem stellen die Systeme über Jahre ein erhebliches Investment dar. Um diesen Kreislauf zu durchbrechen, müssen neue Wege gegangen werden, doch dafür erneut auf der grünen Wiese zu starten, ist undenkbar und viel zu aufwändig. Eine Eins-zu-Eins-Migration ist jedoch genauso wenig zielführend. Es gilt also, so viel wie möglich über das vorhandene System zu lernen, zu restrukturieren und alte Zöpfe abzuschneiden.
Die Welt dreht sich weiter
Doch als wenn eine Migration allein nicht schon aufwändig genug wäre, kommt erschwerend hinzu, dass die Welt sich auch während des Modernisierungsprojektes weiterdreht. Laufend entstehen neue Anforderungen, die weiter im Legacy System entwickelt werden. Diese Parallelentwicklung ist jedoch teuer und kann scheitern: Wichtige Assets des bestehenden System werden gar nicht oder unvollständig umgesetzt.
Es gilt also, das Legacy System wiederholbar migrierbar zu machen – oftmals sogar in einem sich Schritt für Schritt wiederholenden, iterativen Prozess – bis das ganze Altsystem aufgeräumt und reibungslos migriert werden konnte.
Automatisierte Migration dank modellbasierter Softwareentwicklung
Auch wenn die Migration umfangreich und aufwändig bleibt, am einfachsten durchführbar wird sie, wenn so viel wie möglich automatisiert modernisiert werden kann und lesbarer Code in eine zeitgemäße, flexible Architektur überführt wird.
Der Einsatz von Methoden der modellbasierten Softwareentwicklung macht so eine Automatisierung möglich. Mit ihnen können wichtige Teile des bestehenden Systems analysiert werden. Da nichts vielfältiger als historisch gewachsener, handgeschriebener Code ist, gilt es, während dieser Analyse Zusammenhänge und Abhängigkeiten zu erkennen, um Probleme gleichartig lösen und das System neu strukturieren zu können. Toten Code zu erkennen, ist dabei unabdingbar.
Nach der Analyse werden die wichtigen Teile des Altsystems in die auf die jeweilige Domäne zugeschnittenen Modelle überführt. Von dort aus erfolgt eine Transformation mit Mitteln der automatischen Codegenerierung auf eine individuelle Zielarchitektur. Dieser Prozess muss beliebig wiederholbar sein, Code Freeze darf nicht entstehen. Während des Prozess werden unterschiedlichste Werkzeuge, Modelle und Generatoren – zunächst ausschließlich für die Migration – entwickelt. Viele werden nach erfolgreicher Migration verworfen, einige wirken jedoch langfristig und tragen zu einer verbesserten Unterstützung bei der Weiterentwicklung des Systems bei.
Individuelle Lösungen für jede Migration
Da sowohl die Struktur des Quellsystems als auch das gewünschte Zielsystem sehr spezifisch sind, gibt es keine perfekten und bereits fertigen Lösungen. Stattdessen müssen für jedes System maßgeschneiderte Werkzeuge für die Migration hergestellt werden. Was zunächst kompliziert und aufwändig klingt, ist mit modernen Modelling Frameworks durchaus beherrschbar. Die so entstehende Werkzeugkette ermöglicht eine teil- bis vollautomatisierte Migration – und eine reibungslose Ablösung der Alt-Systeme.
Reitet eure Pferde nicht zu Tode. Beschlagt sie neu und sorgt mit der richtigen Unterstützung dafür, dass sie wieder vorne mitlaufen können.
Kommentare