"Nicht die Stärksten oder Intelligentesten werden überleben, sondern diejenigen, die den Wandel am besten bewältigen können.
- Charles Darwin
Es vergeht kein Tag, an dem ich nicht einen Kunden oder Interessenten treffe, der mir von seinen Schwierigkeiten bei der Pflege von Legacy-Anwendungen berichtet. Mit den atemberaubenden Fortschritten bei den Technologien und Frameworks für die Anwendungsentwicklung erweist sich das, was noch vor zehn Jahren als eine wirklich gute Wahl erschien, heute als eine Belastung. Anwendungen, die mit Delphi, Progress oder manchmal sogar älteren Mainframe-basierten Technologie-Frameworks entwickelt wurden, gehören zu den häufigen Modernisierungsherausforderungen, denen wir begegnen. Ganz gleich, ob es sich um die Umstellung auf ein Cloud/SaaS-Modell, ein Reengineering für mobile Anwendungen oder die Umstellung auf eine Microservices-Architektur handelt, der Business Case für die Modernisierung von Legacy-Anwendungen ist sehr überzeugend, und der ROI ist erwiesen.
Was mich überrascht, ist die Tatsache, dass selbst technisch versierte und innovative Unternehmen unsicher sind, wie sie mit der Modernisierung umgehen sollen, und unter dem Druck, sich auf die aktuellen Geschäftsanforderungen zu konzentrieren, dazu neigen, das Thema immer wieder auf die lange Bank zu schieben. Leider kann diese Tendenz zum Aufschieben und zum "Kümmern wir uns später darum" schwerwiegende und oft katastrophale geschäftliche Folgen haben. In diesem Blog werde ich versuchen, einen umfassenden Überblick über die Herausforderungen zu geben und einen pragmatischen Ansatz für die Modernisierung von Legacy-Anwendungen vorzuschlagen.
Typische Schmerzpunkte:Einige der häufig auftretenden Schmerzpunkte im Umgang mit Legacy-Anwendungen lassen sich wie folgt gruppieren:
-
- Mangelnde Flexibilität und Skalierbarkeit aufgrund einer starren Architektur
-
- Schwierigkeiten bei der Integration in aktuelle modulare und flexible IT-Architekturen
- Aufgetürmte technologische Schulden und mangelnde Plattformunterstützung
- Teuer im Unterhalt
- Schwindendes Fachwissen der Mitarbeiter und Schwierigkeiten bei der Rekrutierung neuer Mitarbeiter mit Kenntnissen über alte Technologien
Herausforderungen: Auch wenn die Art der Probleme im Zusammenhang mit Legacy-Anwendungen von Unternehmen zu Unternehmen unterschiedlich sein kann, sind einige der typischen Herausforderungen oder Einschränkungen, die Modernisierungsbemühungen verhindern oder verzögern, folgende:
-
- Undokumentierter Code
- Unfähigkeit, alten Code zu refaktorisieren
- Fehlende Kapazitäten und Fachkenntnisse bei neuen/aufkommenden Technologien
- Druck, bestehende Kunden zu unterstützen
Unabhängig von der Art der Probleme und Herausforderungen müssen Unternehmen einen strategischen und systematischen Ansatz zur Anwendungsmodernisierung verfolgen, wie im Folgenden beschrieben:
a) Bewertung und Modernisierungsfahrplan: Der erste Schritt bei jeder Modernisierung ist eine gründliche Bestandsaufnahme und Bewertung der IT-/Technologielandschaft, um:
-
- Identifizierung der aktuellen Schmerzpunkte
- Abbildung des Ist- und des Soll-Zustands der Anwendung/IT-Systeme
- Analysieren Sie die aktuelle Anwendungs- und Codeleistung
- Malen Sie die Zielstaatsarchitektur und Modernisierungsoptionen
- Bewertung des Ressourcenbedarfs und Analyse der Auswirkungen
- Modernisierungsoptionen und Strategien zur Risikominderung vorschlagen und eine Roadmap mit Prioritäten erstellen
b) Modernisierungsoptionen: Nach einer gründlichen Bewertung der aktuellen Technologielandschaft muss eine angemessene Entscheidung über die optimale Modernisierungsoption getroffen werden, die auf verschiedenen Faktoren wie Komplexität, Risiko, Geschäftsbedarf, Zeitrahmen und Kosten basiert. Die typischen Optionen für die Anwendungsmodernisierung könnten sein:
- i) Refactoring, bei dem der interne Code verbessert wird, während das externe Verhalten unverändert bleibt. In der Regel liegt der Schwerpunkt bei einem Refactoring auf der Vereinfachung des Codes, um ihn wartbarer zu machen.
- ii) Reengineering, bei dem Teile des bestehenden Systems oder der Anwendung wiederverwendet werden, während andere Teile hinzugefügt oder wesentlich verändert werden, um eine robustere und leichter zu wartende Anwendung zu schaffen. Dies kann in der Regel eine umfassende Neugestaltung der Anwendungsarchitektur bedeuten, ist in der Regel teurer als Refactoring und birgt ein höheres Risiko als Refactoring.
- iii) Die Neuentwicklung ist vielleicht die radikalste, risikoreichste und teuerste Modernisierungsoption. Wenn der Aufwand und die Komplexität bei der Umwandlung der Legacy-Anwendung in einen Zielzustand weitaus höher sind als bei der Erstellung einer neuen Anwendung und wenn die potenziellen Vorteile die potenziellen Kosten und Risiken überwiegen, dann könnte dies die bevorzugte Modernisierungsoption sein.
Unabhängig von der Modernisierungsoption sollten Sie bei der Konzeption und Entwicklung der Zielstaatsanwendung die folgenden Schlüsselaspekte berücksichtigen:
-
- Wählen Sie einen modularen Ansatz für eine einfache Entwicklung und Wartung
- Denken Sie in Form von APIs, um Integrationen und Interoperabilität zu erleichtern.
- Erstellen Sie eine API-Schicht, um eine nahtlose Kommunikation zu ermöglichen
- Denken Sie vorausschauend und unabhängig von der Art des Einsatzes zuerst an die Cloud und sorgen Sie für ein mandantenfähiges Modell, das sich zu einer absoluten Notwendigkeit entwickelt.
- Denken Sie vorausschauend und unabhängig von der Art des Einsatzes zuerst an die Cloud und sorgen Sie für ein mandantenfähiges Modell, das sich zu einer absoluten Notwendigkeit entwickelt.
- Zerlegen Sie monolithische Blöcke in feinkörnige Komponenten
- Fokus auf Wiederverwendung
- Erstellen Sie skalierbare und flexible Daten-, Geschäfts-, Technologie- und Informationsarchitekturen mit Blick auf die Zukunft und die Nutzung von Plattformen.
c) Ressourcen und Implementierungspartner: In den meisten Fällen ist die Verfügbarkeit von qualifizierten Ressourcen und deren Kapazität der wichtigste Faktor, der das Tempo und den Erfolg einer Modernisierung bestimmt. Nach einer objektiven Bewertung der Technologielandschaft, auf deren Grundlage eine Modernisierungsoption ausgewählt wird, sollte geprüft werden, ob die erforderlichen Fähigkeiten und Kapazitäten zur Umsetzung intern vorhanden sind. Wenn dies nicht der Fall ist, wäre es ratsam, mit einem strategischen Partner zusammenzuarbeiten, der nachweislich über Fachwissen im Bereich der Anwendungsmodernisierung verfügt und mit der aktuellen und der angestrebten Technologielandschaft vertraut ist.
d) Ausführungsstrategien: Wie bei jeder Umstrukturierung sind strategische Planung, disziplinierte Ausführung, Risikominderung und strenge Überwachung entscheidend für den Erfolg von Initiativen zur Anwendungsmodernisierung. Es gibt zwar kein Patentrezept für den Erfolg, aber meiner Erfahrung nach haben sich die folgenden Ausführungsstrategien als sehr nützlich erwiesen:
- i) Aufbau der richtigen Fähigkeiten und Kapazitäten
- ii) Frühzeitige Berücksichtigung von architektonischen Änderungen
- iii) Pilotprojekte mit geringem Risiko, um die Gültigkeit der Modernisierungsstrategie zu testen
- iv) Konzentrieren Sie sich auf die schrittweise Schaffung von Mehrwert, anstatt auf einen Big Bang-Ansatz
- v) Führen Sie die Änderung nahtlos ein und minimieren Sie die Auswirkungen
- vi) Migrationsstrategie für alle funktionell kritischen Komponenten
Zusammenfassend lässt sich sagen, dass es sinnlos ist, sich mit veralteten Frameworks abzumühen und die schwierigen, aber notwendigen Entscheidungen zur Modernisierung aufzuschieben. Die Risiken von Untätigkeit und Verzögerung könnten katastrophal sein, und die potenziellen Vorteile sind zu offensichtlich, um sie zu ignorieren. Es ist nie zu spät, den Wandel zu begrüßen! [contact-form-7 id="21118" title="Der ultimative Leitfaden für Qualitätssoftware durch Offshoring"]
Verfasst von
Seshu Loka, SVP, Technology Strategy & Platform Solutions
At coMakeIT, Seshu drives technology and software transformation solutions along with overseeing customer onboarding, engineering practices, and delivery responsibilities for multiple customers across the UK, Netherlands and Australia.
Unsere Ideen
Weitere Blogs
Contact



