Software-Modernisierung: viele Wege führen nach Rom

Photo of author
Dr. Georg Pietrek

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.

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:

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.

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:

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)

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.

1 Gedanke zu „Software-Modernisierung: viele Wege führen nach Rom“

  1. Wir teilen Ihre Ansichten und Vorgehensweisen, die Sie beschreiben. Das sind wirklich praktikable Vorgehen (1-3) und echte Alternativen zum Wechsel auf Standard-Software, wie es sehr oft heisst.

    Oder dann sind es Neuentwicklungen auf der grünen Wiese, wie Sie schreiben. Man will alles von Anfang an richtig machen und übernimmt sich dann mit dem Projekt.

    Wirkliche Software-Modernisierung unter Beizug von erfahrenen Fachleuten hilft tatsächlich, grosse Kosten einzusparen.

    Antworten

Schreibe einen Kommentar

Das könnte Dich auch noch interessieren

1. DDD Meetup Rhein/Main ein voller Erfolg

1. DDD Meetup Rhein/Main ein voller Erfolg

Am 16.05.2018 haben wir das erste DDD Meetup Rhein/Main in Frankfurt veranstaltet. Mit Marco Heimeshoff hatten wir den „DDD Care ...
Weiterlesen
SEACON digital 2020 Erfahrungsbericht

SEACON digital 2020 Erfahrungsbericht

Obwohl das vollständig remote Arbeiten für uns schon seit einer Weile selbstverständlich und eigentlich gar nichts besonderes mehr ist, war ...
Weiterlesen
CQRS und EventSourcing bei der DDD.Ruhr #5

CQRS und EventSourcing bei der DDD.Ruhr #5

Dankeschön Herzlichen Dank noch einmal an alle Teilnehmer meines Vortrags "Über Anatomie und Komplexität von CQRS und Event Sourcing" bei ...
Weiterlesen