Bei der Modernisierung einer Anwendung sind viele Dinge zu berücksichtigen. Der erste Schritt auf dem Weg zu einer modernisierten Anwendung ist die Entscheidung, aus welchen einzelnen Maßnahmen die Modernisierung besteht und in welcher Reihenfolge diese Maßnahmen angegangen werden.

Eigenschaften einer Unternehmensanwendung

Eine bei einem Unternehmen über viele Jahre erfolgreich im Einsatz befindliche Anwendung hat spezielle Eigenschaften – einige davon positiv, andere negativ (hier nur eine kleine Auswahl):

  • sie ist für den Geschäftsbetrieb des Unternehmens unverzichtbar
  • sie ist über viele Jahre gewachsen
  • sie ist groß
  • sie ist heterogen
  • sie ist für das Unternehmen wertvoll
  • sie ist kaum dokumentiert
  • sie enthält Teile, die technisch und/oder fachlich veraltet sind

Treiber für Modernisierung

Insbesondere die negativen Eigenschaften führen irgendwann zu einem Druck, die Anwendung modernisieren zu wollen (oder müssen). Typische Treiber dafür sind:

  • zu hohe Lizenz-/Betriebskosten der technischen Plattform
  • zu hohe Wartungskosten
  • der Wunsch, neue Schnittstellen zur Verfügung zu stellen, um dadurch neue Anwendungsbereiche zu ermöglichen (z. B. Zugang über das Internet)
  • der Weggang von Schlüsselpersonal und damit Wissen (z. B. durch Wechsel in den Ruhestand)
  • neue fachliche Anforderungen, die sich in der bestehenden Architektur nur noch schwer umsetzen lassen

Varianten der Modernisierung

Unter Modernisierung wird hier ganz allgemein die Veränderung einer Anwendung mit dem Ziel, aufgestaute negative Eigenschaften loszuwerden, verstanden.

Dafür gibt es grundsätzlich verschiedene Hauptvarianten:

  1. Restrukturierung: die Anwendung verbleibt auf der bisherigen Plattform, es werden aber Renovierungs-Maßnahmen durchgeführt (Refactoring)
  2. automatisierte Migration: ein magisches Werkzeug, das den Quelltext automatisiert umwandelt
  3. modellbasierte Migration: Extraktion von Informationen aus dem existierenden Quelltext mit dem Ziel, daraus modellgetrieben neuen Quelltext zu generieren
  4. Neu-Implementierung: eine manuelle Erstellung von neuem Quelltext auf der grünen Wiese

Welcher dieser Ansätze der richtige ist, ist von den konkreten Umständen abhängig, also von Ausgangsbasis und zu erreichenden Zielen. Das muss für jedes Modernisierungsvorhaben individuell untersucht werden.

Hier sei angemerkt, dass diese Varianten natürlich auch kombiniert werden können. Teile des zu modernisierenden Systems können unterschiedlich behandelt werden: ein Teil wird restrukturiert, ein Teil wird migriert und ein anderer Teil wird neu entwickelt.

Das Ziel

Ausgangspunkt jeder Modernisierung ist ein IST-Zustand, das ist die Architektur des Systems im aktuellen Zustand:

Architektur_IST

Für die Modernisierung wird dann ein SOLL-Zustand definiert: wie soll das System nach der Modernisierung aussehen?

Den Soll-Zustand festzulegen ist nicht der schwierigste Schritt, wie Architekturen moderner Systeme heute aussehen, hat die IT-Branche inzwischen gut im Griff.

Architektur_SOLL

Der Weg

Die größere Schwierigkeit besteht darin, einen Weg aufzuzeigen, wie man vom Ist-Zustand zum Soll-Zustand gelangt. In den seltensten Fällen gelingt dies in einem Schritt, eine Modernisierung erfordert normalerweise eine wohlüberlegte Folge von Schritten.

Man beginnt mit der Auflistung möglicher Schritte. Pro Schritt besteht das aus dem Beschreiben des mit dem Schritt erreichbaren Ziel-Zustands, der betroffenen Teile des Systems und der Maßnahmen (siehe oben: Varianten).

Die Wege erhält man, indem man überlegt, welche Abfolge von Schritten praktikabel ist und zur Erreichung des Ziel-Zustandes führt. Die Auswahl des besten Weges erfolgt dann unter Berücksichtigung der Rahmenbedingungen des Migrationsvorhabens (Ziele, Anforderungen und Randbedingungen). Wir stehen hier vor einer klassischen Optimierungsaufgabe.

Ein Praxis-Beispiel

Die bereits gezeigten Illustrationen stammen aus einem Modernisierungs-Vorhaben für eine Oracle Forms-Anwendung. Es wurden 4 mögliche Ziel-Zustände identifiziert (mit einer klaren Präferenz für das Ziel „Neue Plattform“). Danach konnten 8 verschiedene Wege aufgelistet werden, wie die verschiedenen Zielzustände, teilweise durch Zwischenschritte über andere Ziel-Zustände, erreichbar sind:

Wege

In einem 1-Tages-Workshop wurden diese Wege detailliert betrachtet mit ihren Konsequenzen, Vorteilen und Nachteilen. Ergebnis des Workshops war dann die Entscheidung für den Weg 5:

  • Modellbasierte Migration der Benutzeroberfläche
  • Restrukturierung der existierenden Logik (PL/SQL) und Einziehen eines Service Layers
  • Schrittweise Ablösung der Logik durch Neuimplementierung in einer neuen Programmiersprache (Java)

Weg5

Fazit

Wesentlich für den Erfolg eines Modernisierungsprojektes ist die Festlegung des Ziels und des Weges hin zur modernisierten Anwendung.

Diese Klärung erfolgt durch folgende Aktivitäten:

  • Bestimmung der Ziele, Anforderungen und Randbedingungen des Modernisierungsvorhabens
  • Skizzierung des Ziel-Zustands (oder mehrerer möglicher Zielzustände)
  • Auflistung der (zumindest halbwegs sinnvollen) Wege, die zur Erreichung des Ziel-Zustands führen
  • Bewertung der Wege unter Berücksichtigung der im ersten Schritt erfassten Ziele, Anforderungen und Randbedingungen

Als Ergebnis erhält man die Entscheidung für den Weg, der unter den gegebenen Rahmenbedingungen der beste ist.

Eine solche Untersuchung ist mit relativ moderatem Aufwand machbar und kann der Startpunkt für eine Modernisierung sein. Auch wenn noch keine konkrete Modernisierung geplant ist, kann eine solche Untersuchung als Standortbestimmung sinnvoll sein, um festzustellen, wo man mit einer Anwendung aktuell steht und wie groß das Delta zu einem neuen Ziel-Zustand ist.