Strategien zur Anwendungsmodernisierung beziehen sich auf einen Prozess, der darauf abzielt, bereits vorhandene Softwareanwendungen so zu verbessern, dass sie den geänderten Anforderungen Ihres Unternehmens oder der Nutzer gerecht werden. In manchen Fällen sollen Strategien zur Anwendungsmodernisierung sicherstellen, dass ein Unternehmen mit seinen Wettbewerbern mithalten kann.
Mit moderneren Anwendungen versetzt sich das Unternehmen in die Lage, mindestens genauso schnell zu wachsen und sich anzupassen wie seine Konkurrenz – oder gar einen oder mehrere Schritte voraus zu sein. Die Gründe für die Modernisierung bestehender und lange bewährter Anwendungen hängen von den Bedürfnissen des Unternehmens ab, aber in den meisten Fällen geht es um eines der folgenden Ziele:
- Die Erwartungen der Benutzer erfüllen. Die Anwender verlangen möglicherweise eine nahtlosere, weniger verwirrende oder einfach nur einfachere Erfahrung – ähnlich der, die sie mit modernen Anwendungen haben.
- Erhöhung der Sicherheit. Wenn Ihr technischer Stack auf dem neuesten Stand ist, können Sie von den neuesten Sicherheitsfunktionen und regelmäßigen Updates der Hersteller profitieren.
- Verbesserung der Kompatibilität innerhalb des Unternehmens. Manchmal arbeiten ältere Anwendungen nicht gut mit anderer Software zusammen, so dass eine Modernisierung die Integration in Ihrem Unternehmen erleichtert.
- Skalierbarkeit. Moderne Anwendungen lassen sich leichter skalieren, insbesondere wenn es sich um Cloud-basierte Anwendungen handelt. So können Sie problemlos neue Benutzer und Geschäftsbereiche hinzufügen.
- Bessere Leistung. Eine modernisierte Anwendung kann über Funktionen verfügen, die sie effizienter machen, oder Tools enthalten, die sich wiederholende Aufgaben automatisieren und menschliche Fehler ausschließen. So kann die Modernisierung die Gesamtleistung Ihres Unternehmens steigern.
Zentrale Strategien zur Anwendungsmodernisierung
Strategien zur Anwendungsmodernisierung können verschiedene Formen annehmen, wobei jede davon unterschiedliche Ressourcen erfordert. In den meisten Fällen werden Modernisierungsbemühungen unter eine der folgenden Kategorien fallen:
- Rehosting,
- Umstrukturierung (Refactoring),
- Neuaufbau (Rearchitecting),
- Neu-Erstellung (Rebuild),
- Ersetzen (Replacing) sowie
- Beibehalten/Kapseln (Retain).
Beim Rehosting einer Anwendung wird diese in eine neue Umgebung verschoben, ohne dass größere Änderungen vorgenommen werden. Dies ist oft eine der schnelleren und kostengünstigeren Modernisierungsoptionen. Sobald Sie die Anwendung migriert haben, können Sie die Vorteile einer effizienteren und flexibleren Infrastruktur nutzen.
Rehosting bietet einem eine relativ unkomplizierte und schnelle Modernisierungslösung, kombiniert mit der Möglichkeit, die Nutzung der Hardware zu optimieren sowie eine verbesserte Skalierbarkeit und Überwachung. Dazu gesellt sich noch die Möglichkeit, Wartungskosten und die Wiederherstellungszeit zu reduzieren – und in Konsequenz mehr Spielräume für die Minimierung von Service-Ausfallzeiten.
Rehosting ist eine effektive Option für Unternehmen, die Platz in ihren Rechenzentren freimachen oder die erfolgreich modernisieren möchten, auch wenn ihr IT-Team nur über begrenzte Kenntnisse der Cloud-Technologie verfügt.
Umstrukturierung (Refactoring)
Beim Refactoring werden Änderungen am Code einer Anwendung vorgenommen, ohne dass sich die Benutzererfahrung ändert. Mit anderen Worten: Es werden die Elemente des bestehenden Codes umgeschrieben, aber die Benutzer können weiterhin tun, was sie tun müssen.
Einige Anwendungen müssen umstrukturiert werden, weil sie aus „unordentlichem Code“ bestehen, der schwer zu pflegen ist. In einigen Fällen ist der Code selbst zu kompliziert oder aus der Sicht eines Programmierers schwer zu verstehen. Auch wenn die Benutzer noch zurechtkommen, muss er angepasst werden.
Mit Refactoring kommen einige interessante Möglichkeiten ins Spiel. Es lassen sich
- die Vorteile neuer Innovationen durch häufige Aktualisierungen nutzen,
- der Code optimieren,
- technische „Altlasten“ loswerden sowie
- die Betriebskosten senken.
Refactoring eignet sich am besten für Unternehmen, die eine Vereinfachung einer Anwendung möchten, die im Laufe der Zeit zu komplex geworden ist, oder die sich eine bessere Skalierbarkeit der Anwendung wünschen. Aber auch die Steigerung der Betriebsleistung – ohne Einbußen bei der Funktionalität – lässt sich damit realisieren sowie die Nutzung gängiger Optionen aus dem Bereich Platform-as-a-Service (PaaS).
Neuaufbau (Rearchitecting)
Bei einem Rearchitecting wird die Architektur einer Anwendung grundlegend geändert. Dabei erstellt man die Anwendung zwar nicht von Grund auf neu, nimmt aber erhebliche Änderungen am Code, an der Funktionalität und an der Art und Weise vor, wie sie mit anderen Programmen, Netzwerken oder Endpunkten interagiert.
Die Gründe für einen Neuaufbau sind vielfältig, versetzt das Rearchitecting Unternehmen doch in die Lage, die Gesamtbetriebskosten zu senken und Anwendungen widerstandsfähiger gegen Ausfälle und Leistungsprobleme zu machen. Des Weiteren kann ein Rearchitecting die beste Wahl für eine Anwendung sein, wenn man es nicht mit einer Cloud-nativen Anwendung zu tun hat oder man sich von Software-Abhängigkeiten und proprietären Anwendungs-Schnittstellen (APIs) befreien muss.
Neu-Erstellung (Rebuild)
Bei einem Rebuild wird eine Anwendung von Grund auf unter Verwendung modernerer Technologien neu erstellt. In einigen Fällen behält der Rebuild-Prozess dieselbe Kernfunktionalität der Anwendung bei, gibt ihr aber eine neue Struktur, die es ihr ermöglicht, in einer anderen Umgebung zu arbeiten, z. B. in der Cloud.
Mit Low-Code-Technologie wie der IBM I-Modernisierungslösung von LANSA können IT-Verantwortliche den Rebuild individuell gestalten und so sicherstellen, dass er den aktuellen Anforderungen entspricht. Ein Rebuild ist für einige Unternehmen eine gute Wahl, weil:
- man die Prozesse schrittweise abschließen kann,
- es die Innovation beschleunigt,
- weil Anwendungen schneller erweitert werden können und
- es die Betriebskosten senkt.
Für Unternehmen ist das Neuaufbauen eine effektive Option, wenn:
- der Aufwand für Refactoring oder Rearchitektur zu groß ist,
- man die Vorteile von Cloud-basierten Diensten nutzen möchte oder
- das Team DevOps-Prinzipien einführen möchte.
Ersetzen (Replacing)
Wenn man eine Anwendung ersetzt, verwirft man die alte Anwendung vollständig und erstellt eine völlig neue Lösung. In manchen Fällen gib es keine andere Wahl, weil die alte Anwendung niemals mit einer wichtigen Software oder einem System kompatibel sein wird, das das Unternehmen benötigt.
Ersetzen kann die beste Option für Ihr Unternehmen sein, weil:
- es relativ schnell und einfach geht,
- sich die Implementierung mit Hilfe von Best Practices der Branche standardisieren lässt,
- eine schnellere Einführung von geschäftsprozessorientierten Verfahren möglich wird und
- man in neue Anwendungen investieren kann, die einem einen Wettbewerbsvorteil verschaffen können.
Eine Ersetzung kann die beste Wahl sein, wenn die aktuelle Lösung nicht mehr funktioniert, man eine SaaS-Option zur Verfügung hat oder es sich nicht lohnt, weiter in die Wiederbelebung einer angeschlagenen Altanwendung zu investieren.
Beibehalten/Kapseln (Retain)
Bei dieser Vorgehensweise identifizieren die Verantwortlichen bestimmte Funktionen innerhalb einer Anwendung als besonders bedeutsam und verwandeln sie in Container oder Microservices. Eine Anwendung kann beispielsweise über eine Datenbank mit wertvollen Informationen verfügen, die andere Anwendungen nutzen sollen. Durch die Containerisierung der Datenbank machen Sie sie für andere Anwendungen zum Abrufen von Informationen verfügbar.
Retaining könnte die beste Lösung sein, weil sie es ermöglicht, die effektivsten Teilbereiche einer Anwendung zu modernisieren und man die selbst erstellten Microservices zur Bereitstellung unterschiedlichster Anwendungsfunktionen verwenden kann.
Aber auch die Möglichkeit, Schlüsselfunktionen der alten Anwendung in das Design einer zukünftigen Anwendung zu implementieren, bleibt dabei bestehen.
Das Retaining könnte die beste Option sein, wenn:
- man nur einige wenige Schlüsselfunktionen modernisieren muss, um die Agilität zu erhalten, und
- man Funktionen der Legacy-Anwendung in eine zukünftige Anwendung integrieren möchte, deren Entwicklung das Unternehmen plant.
Implementierung einer Strategie zur Anwendungsmodernisierung
Mit den folgenden Schritten können Sie Ihre Modernisierung rationalisieren und die Zustimmung der betroffenen Interessengruppen gewinnen.
- Bewertung: In der Bewertungsphase analysieren Sie Ihre bestehende Anwendung, um herauszufinden, wo sie gut funktioniert und wo sie nicht ausreicht. Dies ist wichtig für die Festlegung der Ziele Ihrer Modernisierung.
- Planung: In der Planungsphase entwickeln Sie Ihren Modernisierungsplan, der die einzelnen Schritte enthält, die Sie unternehmen werden. Ihr Plan sollte auch Meilensteine enthalten, anhand derer Sie den Fortschritt überprüfen können, sowie die Ressourcen, die Sie zum Erreichen jedes Meilensteins benötigen.
- Ausführung: Hier setzen Sie Ihre Strategie zur Anwendungsmodernisierung um. Es ist nicht ungewöhnlich, dass die Ausführungsphase mehrere Beteiligte erfordert. Daher ist es wichtig, Meilensteine für diese Phase festzulegen, damit jedes Teammitglied seine Aufgaben und Ziele kennt.
- Test: In der Testphase prüfen Sie, wie Ihre modernisierte Anwendung funktioniert. Sie beantworten Fragen wie: Kann sie immer noch das tun, was wir brauchen, oder erfüllt sie, falls sie neu ist, unsere Kernanforderungen? Gibt es Probleme mit der Latenzzeit oder der Zugänglichkeit? sowie Wurden durch die Modernisierung Sicherheitslücken geschaffen, die wir vor einer umfassenden Bereitstellung schließen müssen?
- Bereitstellung: Bei der Bereitstellung Ihrer App geht es darum, sie dem Rest der Welt, Ihrem Unternehmen oder einer bestimmten Zielgruppe vorzustellen. In dieser Phase ist es wichtig, die Anwender zu unterstützen, insbesondere wenn die App neue oder verbesserte Arbeitsabläufe bietet. Auf diese Weise stellen Sie sicher, dass die App von allen genutzt wird, und bekämpfen eventuelle Vorbehalte, die die Nutzer haben könnten.
Die Anwendungsmodernisierung ist ein wichtiger Schritt, um ein Unternehmen wettbewerbsfähig zu halten und die Agilität in der Zukunft zu ermöglichen. Es gibt verschiedene Möglichkeiten, Anwendungen zu modernisieren, von der einfachen Verlagerung in eine andere Umgebung bis hin zum vollständigen Austausch.
Wichtig ist, dass man die Modernisierung mit den richtigen Werkzeugen durchführt. Mit den Produkten von LANSA beispielsweise stehen umfassende Tools zur Verfügung, mit denen sich die Modernisierung entsprechend der aktuellen und zukünftigen Anforderungen effizient und erfolgreich gestalten lässt.
Jörg Hamacher ist Geschäftsführer der S.M.Hartmann GmbH.