Die Modernisierung von Legacy-Systemen ist heute keine Option mehr. Ohne sie ist Ihr Unternehmen nicht wettbewerbsfähig, insbesondere in der aktuellen Wirtschaftslage, in der jeder gesparte Cent zählt. Die Modernisierung Ihrer Systeme ist jedoch ein großes und kostspieliges Projekt, das spektakulär nach hinten losgehen und zu Ausfällen und Vertrauensverlust führen kann. Heute möchten wir Ihnen Erfolgsgeschichten von Kunden von Redwerk vorstellen und Ihnen erklären, wie diese durch die Umsetzung eines strategischen Ansatzes und erstklassiger Transformationspraktiken Wachstum erzielt haben.
Um Ihnen einen Eindruck vom Wert der Modernisierung von Legacy-Code zu vermitteln, bedenken Sie, dass laut einer Studie von Gartner 70 % der IT-Budgets für die Aufrechterhaltung des laufenden Betriebs aufgewendet werden. Stellen Sie sich nun vor, was Sie durch Innovation erreichen könnten, wenn Sie dieses Geld freisetzen würden. Klingt das nach einem attraktiven Angebot?
Im Folgenden erklären die Entwickler von Redwerk genau, wie Sie dieses Ergebnis bei minimalen Geschäftsrisiken erzielen können.
Bewährte Verfahren für die Modernisierung von Legacy-Code
Die folgende Liste spiegelt die hart erarbeiteten Erkenntnisse aus Programmen wider, die unseren Kunden tatsächlich Ergebnisse geliefert haben. Wir werden Sie nicht mit einer weiteren Auflistung der Herausforderungen langweilen, denen Unternehmen bei der Modernisierung von Legacy-Systemen gegenüberstehen. Stattdessen konzentrieren wir uns auf die tatsächlichen Lösungen und Ansätze, die mit Sicherheit einen Mehrwert und ROI liefern.
Beginnen Sie mit den Geschäftsergebnissen, nicht mit Architekturpräferenzen
Sie sollten immer damit beginnen, Erfolg in messbaren Begriffen zu definieren, wie zum Beispiel:
- Release-Häufigkeit
- Fehlerquote
- Durchlaufzeit für Änderungen
- Betriebszeit
- Infrastrukturkosten
- SLAs für Sicherheitspatches
- Konversionsraten
Verbinden Sie jede Initiative zur Modernisierung von Legacy-Code mit einem geschäftlichen KPI und einem verantwortlichen Eigentümer.
Zur Verdeutlichung: Denken Sie daran, dass die meisten Modernisierungsprogramme, die scheitern, in der Regel mit „Wir brauchen Microservices” oder „Wir müssen cloud-nativ werden” beginnen. Diejenigen, die erfolgreich sind, beginnen mit „Wir müssen die Release-Zyklen von sechs Wochen auf drei Tage verkürzen” oder „Wir müssen die Reaktionszeit bei Vorfällen um 80 % reduzieren”.
Spüren Sie den Unterschied? Das ist es, was den Erfolg jeder Strategie zur digitalen Transformation ausmacht. Nehmen Sie unsere Zusammenarbeit mit VIP Auslan, einer Agentur, die sich für die australische Gehörlosen-Community einsetzt. Wir begannen mit der Stabilisierung ihrer Plattform zur Buchung von Dolmetschern – ein Prozess, der Reverse Engineering der Geschäftslogik und die Behebung kritischer Dokumentationslücken innerhalb einer dichten Legacy-Codebasis erforderte. Nachdem die Plattform stabilisiert war, gingen wir zur Automatisierung manueller Workflows und zur Verbesserung der Benutzererfahrung über.
Ähnliche Erfolge konnten wir mit Evolv erzielen. Das Unternehmen hat die Legacy-Lösung von Sentient Ascend (nach deren Übernahme) komplett umgestaltet und die aktualisierte Version Evolv 1.0 auf den Markt gebracht. Basierend auf dem Legacy-Tool ist diese Iteration eine innovative, skalierbare SaaS-Plattform, die bereits von Dutzenden von Evolv-Kunden genutzt wird und schnell wächst.
Erstellen und pflegen Sie eine Anwendungsportfolio-Karte
Um Ihre Fortschrittsbewertung zu unterstützen, erstellen Sie ein Inventar, das die Geschäftskritikalität, Kosten, das Risikoprofil, die Änderungshäufigkeit, Abhängigkeiten, Datenempfindlichkeit und Auswirkungen auf die Benutzer jedes Systems erfasst. Fügen Sie außerdem Details zur Laufzeit und Infrastruktur, Schnittstellen (APIs, Dateien, Warteschlangen), Betriebsmetriken und die Historie von Vorfällen hinzu.
Wenn Sie diese Informationen dokumentieren und für einen einfachen Zugriff abbilden, können Sie sogenannte „zufällige Modernisierungsmaßnahmen” vermeiden. Dabei handelt es sich um einen Ansatz, bei dem Teams eher das modernisieren, was gerade günstig ist, als das, was wirklich wichtig ist. Aktualisieren Sie diese Karte kontinuierlich, um Ihre Transformation zu verfolgen und ihre Auswirkungen zu messen. Es sollte sich um ein lebendiges Dokument handeln, auf das Sie bei der Berechnung des ROI der digitalen Transformation zurückgreifen können.
Wir haben umfangreiche Erfahrungen mit Legacy-Mapping gesammelt, als wir an dem riesigen Projekt für Justin Alexander, eine renommierte US-amerikanische Brautmodenmarke, gearbeitet haben. Redwerk begann mit einer alten Website, die wir mit einem benutzerdefinierten Page Builder in eine Multi-Brand-Webplattform umgewandelt haben, damit jede Marke ihren einzigartigen Stil zum Ausdruck bringen kann. Gleichzeitig haben wir dafür gesorgt, dass die ursprüngliche Website reibungslos weiterläuft, um sicherzustellen, dass es während des umfangreichen Plattform-Upgrades zu keinen Ausfallzeiten und Verlusten kommt.
Priorisieren Sie nach Wert UND Risiko
Verwenden Sie die grundlegende 2×2-Matrix für maximale Effizienz:
- Hoher Wert, hohes Risiko: Priorisieren Sie frühzeitig, aber liefern Sie schrittweise. Diese Systeme sind zu wichtig, um sie zu ignorieren, aber sie sind auch zu riskant für Big-Bang-Ansätze.
- Hoher Wert, geringes Risiko: Hier erzielen Sie schnelle Erfolge. Best Practices für die Modernisierung von Altsystemen besagen, dass Sie diese priorisieren sollten, um Dynamik und Glaubwürdigkeit aufzubauen. Sie können sich jedoch nicht vollständig auf sie verlassen, wenn Sie eine sinnvolle Transformation erreichen wollen.
- Geringer Wert, hohes Risiko: Investieren Sie nicht in die Modernisierung von Systemen, die verschwinden sollten. Ein notwendiger Teil der Transformation ist die Stilllegung von Abläufen, Anwendungen und möglicherweise ganzen Abteilungen, die nicht in ein modernes, effizientes Unternehmen passen und nur unnötige Bürokratie verursachen und Ressourcen verbrauchen.
- Geringer Wert, geringes Risiko: Wenn Sie Systeme haben, die diesem Muster entsprechen, können diese warten. Wenn sie nicht vollständig ersetzt werden müssen, sollten Sie sie so lange unverändert lassen, bis das Entwicklungsteam alle vorrangigen Aufgaben abgeschlossen hat.
Denken Sie daran, dass Sie bei der Festlegung von Prioritäten für die Modernisierung Ihrer Altsysteme auch gesetzliche Fristen und Sicherheitsaspekte berücksichtigen müssen. Sobald diese Grundlagen geklärt sind, verlagert sich der Fokus in der Regel auf übergeordnete Ziele, wie beispielsweise die Integration von KI in Altsysteme, um neue Effizienzsteigerungen zu erzielen.
Was ist nun, wenn Sie die Upgrades schnell durchführen müssen, ohne den Ablauf und die Qualität zu beeinträchtigen? Wir hatten ein solches Projekt mit Incling, einem Kunden, der innerhalb weniger Wochen eine vollständige Umstellung benötigte. Also haben wir das Projekt ohne Abstriche bei den Best Practices für die Modernisierung von Altsystemen durchgeführt. Redwerk implementierte den strategischen Ansatz, beginnend mit einer detaillierten Codeüberprüfung. Allein dadurch konnten wir die Codebasis um 15.000 Zeilen bereinigen und verkleinern. Als Nächstes arbeiteten mehrere Teams gleichzeitig an verschiedenen Bereichen der Optimierung. Das Ergebnis: Wir haben die Frist von drei Wochen für die App-Weiterentwicklung mit einem vollständig dokumentierten Modernisierungsplan eingehalten.
In ähnlicher Weise haben wir die E-Voting-Lösung des EU-Parlaments innerhalb eines engen Zeitrahmens erfolgreich aktualisiert. Wir hatten einen Monat Zeit, um eine Legacy-Anwendung auf JBoss-Basis auf ein modernes, wartungsfreundliches Framework zu migrieren. Wir haben das Projekt sofort in überschaubare Teilaufgaben unterteilt und globale Kommunikationskanäle zwischen den Teams in der Ukraine, Italien und Belgien eingerichtet. Indem wir die Aufgabenverfolgung aus unübersichtlichen E-Mail-Threads in eine moderne Bug-Tracking-Software verlagert haben, haben wir eine nahtlose Feedbackschleife geschaffen: Der in der Ukraine geschriebene Code wurde noch am selben Tag in Brüssel getestet, sodass unsere Entwickler sofortiges Feedback von den Endnutzern erhielten.
Wählen Sie das richtige Modernisierungsmuster für jede Arbeitslast
Sie sollten immer eine Einheitslösung vermeiden. Wählen Sie Modernisierungsmuster für Legacy-Anwendungen basierend auf ROI, Komplexität und der Häufigkeit von Systemänderungen.
Ein System, das sich selten ändert und ein geringes Risiko aufweist, muss beispielsweise möglicherweise nur neu gehostet werden. Ein System mit hohen Änderungsanforderungen und erheblicher Kopplung muss überarbeitet werden. Ein System, bei dem sich Ihr Wettbewerbsvorteil nicht in benutzerdefiniertem Code widerspiegelt, sollte wahrscheinlich durch SaaS ersetzt werden.
Die schlechtesten Ergebnisse entstehen in der Regel durch die Anwendung des falschen Musters, z. B. das Umschreiben von Systemen, die überarbeitet werden sollten, oder die Überarbeitung von Systemen, die ersetzt werden sollten.
Wenn Sie sich fragen, wie Sie genau wissen können, welches Transformationsmuster wo anzuwenden ist, sollten Sie mit einer fachkundigen Codeüberprüfung beginnen. Das Redwerk-Team hat beispielsweise mit Project Science zusammengearbeitet, um dessen Backend-API zu überprüfen. Wir haben ihnen geholfen, die Wartbarkeit des Codes um 80% zu verbessern, indem wir maßgeschneiderte Vorschläge für jeden Teil des Systems unterbreitet haben.
Modernisieren Sie Ihre Bereitstellungspraktiken zusammen mit Ihrem Code
Es ist großartig, dass Sie Best Practices für die Modernisierung von Legacy-Code implementieren. Um Wachstum zu erzielen, müssen Sie jedoch auf jeder Ebene modernisieren. Implementieren Sie kontinuierliche Integration mit schnellem Feedback, automatisierten Bereitstellungspipelines, Feature-Flags für progressive Bereitstellung und umfassender Beobachtbarkeit mit Protokollen, Metriken, Traces, SLOs und Warnmeldungen.
Auf diese Weise reduzieren Sie das Änderungsrisiko und verbessern die durchschnittliche Wiederherstellungszeit. Teams, die Code modernisieren, ohne die Bereitstellung zu modernisieren, stellen in der Regel fest, dass ihre Geschwindigkeitsgewinne geringer sind als erwartet. Das bedeutet, dass Sie den Engpass nur an eine andere Stelle in der Pipeline verlagern.
Denken Sie auch in großen Maßstäben, wie unsere Kunden bei Utility Revenue Services (URS). Als sie mit ihrer digitalen Transformation begannen, hatten sie nur eine Windows-exklusive Legacy-Anwendung. Als sie entwickelt wurde, war es eine gute Anwendung, aber seitdem hat sich die Welt weiterentwickelt. Gemeinsam haben wir daher die ursprüngliche Lösung als Web-App neu erstellt und alle relevanten Daten migriert. Anschließend haben wir die Funktionalität um zusätzliche Berichtsfunktionen, Rechnungsfunktionen und vieles mehr erweitert. URS hat nicht nur seine App auf Code-Ebene und seine Update-Bereitstellungspfade modernisiert, sondern auch seine Dienstleistungsbereitstellung für Kunden ins 21. Jahrhundert gebracht, was ihm half, neue Kunden zu gewinnen.
Architektur bewusst entkoppeln
Eine der bewährten Methoden zur Modernisierung von Altsystemen, die oft übersehen wird, ist der Umgang mit Kopplungen. Leider wählen viele Unternehmen den einfacheren Weg und hoffen, dass sich das Problem von selbst löst. Dies wird jedoch höchstwahrscheinlich nicht der Fall sein. Planen Sie daher unbedingt Konzepte wie Modularisierung, APIs und Eventing ein.
So können Sie die Architektur sicher und effektiv entkoppeln:
- Definieren Sie begrenzte Kontexte: Domain-driven Design Thinking ist hier sehr hilfreich.
- Extrahieren Sie Dienste und Module rund um stabile Domänenkonzepte: Konzentrieren Sie sich auf etablierte Konzepte statt auf technische Schichten.
- Fügen Sie API-Fassaden hinzu: Dies trägt zur Stabilisierung externer Integrationen bei.
- Verwenden Sie Ereignisse: Dies funktioniert für einige der asynchronen Workflows.
In der Realität ist die Entkopplung zwar kostspielig, aber für die langfristige technische Nachhaltigkeit notwendig. Wir empfehlen, sie dort durchzuführen, wo sie Optionen schafft, die Sie tatsächlich nutzen werden, und nicht überall, nur weil sie theoretisch sauberer ist.
Insgesamt ist eine zu starke Abhängigkeit („Kopplung”) von irgendetwas keine gute Eigenschaft im Hinblick auf eine skalierbare Softwarearchitektur. Sie sollten immer nach Unabhängigkeit und Flexibilität streben, die Sie auch erreichen können.
Bei Redwerk haben wir beispielsweise mit Green Valley zusammengearbeitet, einem Anbieter von E-Government-Lösungen mit Sitz in den Niederlanden. Green Valley hatte ein Plugin, das von vielen Behörden verwendet wurde. Es war jedoch direkt an Microsoft Word gebunden. Daher wurde das Plugin jedes Mal, wenn Microsoft seine Software aktualisierte, unbrauchbar. Gemeinsam haben wir CMSOI entwickelt, eine Plattform, die mehrere Versionen von Microsoft Office Suites unterstützt und das Plugin bei Bedarf auf OpenOffice portieren kann. Dies ist ein Beispiel dafür, wie Modernisierung scheinbar kritische Abhängigkeitsprobleme löst.
Behandeln Sie Daten als erstklassigen Arbeitsablauf
Wussten Sie, dass selbst bei Verwendung von Best Practices für die Modernisierung von Altsystemen viele Programme an den Daten scheitern, nicht am Code? Um dieses unglückliche Ergebnis zu vermeiden, sollten Sie explizit Pläne für Datenhoheit und kanonische Modelle, Migrationsansätze (Bulk plus Delta, Dual-Write, Change Data Capture), Abstimmung und Überprüfbarkeit sowie Aufbewahrungs- und Compliance-Anforderungen erstellen.
Planen Sie außerdem die Kontinuität der Berichterstattung und Business Intelligence während der Umstellung. Führungskräfte, die während der Modernisierung den Zugriff auf Dashboards verlieren, werden nicht lange geduldige Unterstützer bleiben.
Die gute Nachricht ist, dass es viele Möglichkeiten gibt, effektiv mit Daten zu arbeiten und Ihre Geschäftsergebnisse zu verbessern, insbesondere in diesem Bereich. Wir haben dies durch die Zusammenarbeit mit Encode, einer Cyberthream-Management-Plattform, erreicht. Der Kunde musste seine Enorasys Security Analytics-Plattform aktualisieren, da ihr die Infrastruktur fehlte, um schnell genug mit dem Datenwachstum Schritt zu halten. Wir haben ihm bei der Migration zu Elasticsearch geholfen und dabei den Zugriff auf die zuvor in MySQL gespeicherten Daten aufrechterhalten. Das Ergebnis war eine umfassende Aktualisierung und Zukunftssicherung des Produkts, eine Senkung der Software-Wartungskosten und die Anerkennung durch IBM.
Integrieren Sie Sicherheit und Compliance vom ersten Tag an
Jede Modernisierung von Altsystemen sollte heute damit beginnen, dass Sie sich überlegen, wie Sie Compliance und Sicherheit in jeder Phase Ihrer Transformation gewährleisten können. Zu den Punkten, die Sie von Anfang an berücksichtigen sollten, gehören:
- Abhängigkeitsmanagement und Software-Stücklisten
- Patching von SLAs mit automatisiertem Schwachstellenscan
- Geheimnisverwaltung
- Zugriff mit geringsten Rechten durch Netzwerksegmentierung
- Bedrohungsmodellierung für wichtige Abläufe
Dies befasst sich direkt mit den Risiken, die von „anfälligen und veralteten Komponenten” ausgehen, von denen Legacy-Systeme überproportional betroffen sind. Denken Sie daran, dass die Nachrüstung von Sicherheitsmaßnahmen teuer und oft unvollständig ist, während die Integration von Anfang an weniger kostet und besser funktioniert.
Eines unserer Code-Review-Projekte umfasste eine detaillierte Gesundheits- und Sicherheitsbewertung, sodass wir gesehen haben, wie viel effektiver ein Unternehmen sein kann, wenn es von Anfang an auf Sicherheit setzt. Site Compass, das zur Reivernet Group of Companies aus Australien gehört, ist unser Beispiel. Wir haben eine gründliche Überprüfung ihrer Codebasis durchgeführt, Schwachstellen identifiziert und Vorschläge zur Behebung unterbreitet. Als Ergebnis konnte die Reivernet Group Verbesserungen planen und umsetzen, die zu einer 90-prozentigen Steigerung der Wartbarkeit des Codes führten.
Parallele Ausführung von Alt und Neu mit klaren Cutover-Kriterien
Eines der wichtigsten Dinge, die Sie über Best Practices für die Modernisierung von Legacy-Systemen wissen müssen, ist, dass Sie immer schrittweise vorgehen sollten. Es geht nicht darum, an einem Tag große, auffällige Änderungen vorzunehmen. Tatsächlich ist das ein großes und oft ungerechtfertigtes Risiko. Stattdessen sollten Sie:
- Definieren Sie Einstiegs- und Ausstiegskriterien für jede migrierte Funktion
- Legen Sie Leistungsgrundlagen fest, die die neue Implementierung erfüllen muss
- Erstellen Sie Rollback-Pläne
- Legen Sie Ihre „Definition of Done“ fest, einschließlich Dokumentation und Runbooks
Wir empfehlen die Verwendung von Canary Releases und schrittweisen Rollouts, um den Blast Radius zu begrenzen. Die Möglichkeit, den Datenverkehr zwischen alten und neuen Implementierungen umzuleiten und bei Bedarf schnell zurückzusetzen, verwandelt die Modernisierung von einem risikoreichen Unterfangen in eine überschaubare Reihe von Experimenten.
Wir haben diesen Ansatz bei der Modernisierung der Pridefit-App umgesetzt und dadurch eine Steigerung der Abonnements um 45 % erzielt, indem wir schrittweise neue Funktionen eingeführt und gleichzeitig die Kernfunktionalität aktualisiert und optimiert haben.
Der Schlüssel zum Erfolg bei der Umsetzung der Legacy-Modernisierung
Seien wir ehrlich: Es gibt zwei entscheidende Faktoren, die über den Erfolg oder Misserfolg Ihrer Transformation entscheiden:
- Ihre Einstellung zur strategischen Planung und Umsetzung des Modernisierungsprozesses
- Ein zuverlässiger und erfahrener Partner, der sich besonders intensiv mit Ihrem Unternehmen auseinandersetzt
Legacy-Systeme sind so tief in Ihrem Unternehmen verwurzelt, dass ihre Umgestaltung nicht nur eine Frage der Technologie ist. Manchmal muss sich auch Ihre Herangehensweise an alltägliche Aufgaben ändern.
Bei Redwerk sind wir stolz darauf, eng mit jedem Kunden zusammenzuarbeiten, um sein Geschäft von innen heraus wirklich zu verstehen. Wir untersuchen Ihre Prozesse und analysieren Ihre Ziele, bevor wir einen strategischen Ansatz für Veränderungen vorschlagen.
Möchten Sie sehen, wie dies für Sie funktionieren kann? Kontaktieren Sie uns und lassen Sie uns noch heute ein Gespräch beginnen!
Sehen Sie, wie wir VIP Auslan dabei geholfen haben, ihr Produkt zu verbessern und den manuellen Verwaltungsaufwand um 40 % zu reduzieren