Software-Modernisierung

Software-Modernisierung ist eine kostengünstige Alternative zur Neuentwicklung. Das zentrale Anliegen einer Modernisierung ist es, eine in die Jahre gekommene Software wieder änder- und erweiterbar zu machen. Wir unterstützen Sie bei der Planung und Umsetzung Ihres Modernisierungsprojekts und machen Ihre Software wieder fit für die Zukunft.

Warum Software-Modernisierung?

Legacy-Anwendungen zeichnen sich dadurch aus, dass neue Features gar nicht oder nur noch mit großem Risiko und hohen Kosten umgesetzt werden können. Unternehmen tendieren in diesen Situationen dazu, die Software komplett neu zu entwickeln. Eine Neuentwicklung löst per se nicht alle vorhandenen Probleme und schafft zudem neue, heute noch nicht vorhersehbare Probleme. Zeitpläne und Budgets werden regelmäßig überschritten. Hinzu kommt, dass das Altsystem parallel zur Neuentwicklung weiter betrieben werden muss, was zusätzlich Mitarbeitende bindet.

Software-Modernisierung schlägt den entgegengesetzten Weg ein und minimiert das Kosten- und Zeitrisiko durch ein iteratives Vorgehen. Die Notwendigkeit des Parallelbetriebs zweier Systeme entfällt.

Wie Software-Modernisierung?

Im Kern geht es bei der Software-Modernisierung um das Wiederherstellen von "Feature-Fähigkeit": Features sollen wieder in akzeptabler Zeit und mit angemessenem Budget geändert oder zugefügt werden können. Voraussetzung für das Herstellen von Feature-Fähigkeit ist die Durchführung einer Grundsanierung. Diese schafft die Grundlagen für die Änderbarkeit des Legacy-Systems und umfasst in der Regel mindestens die folgenden Maßnahmen:

  • Einführung eines Versionskontrollsystems,

  • Automatisierung des Deployments und

  • Test-Automatisierung anhand von Smoke- oder Happy Path-Tests.

Steht die Grundsanierung, wird die Feature-Fähigkeit in der nächsten Phase anhand der Entwicklung eines konkreten Features verprobt. Während die Grundsanierung unabhängig von den umzusetzenden Features ist, fokussiert sich die Feature-bezogene Modernisierung explizit auf zu ändernde oder neue Features. Die erforderlichen Schritte hängen maßgeblich von der Altsoftware und den gewünschten Features ab, wie z.B.

  • Erweiterung der Legacy-Anwendung um eine API, um Zugriff auf die vom neuen Feature benötigten Daten zu bekommen.

  • Erstellen von Datenbank-Triggern, um Feature-bezogene Datenbanken mit den vom neuen Feature benötigten Daten zu füllen. 

  • Einführung, Umsetzung und Überwachung klarer Modulgrenzen

  • Trennung von Business- und Infrastruktur-Code  

Ähnlich dem Refactoring geht es in dieser Phase darum, das Design des existierenden Systems zu verbessern und Ansatzpunkte für Erweiterungen zu schaffen. Während Refactoring aus kleinen und überschaubaren Code-Anpassungen besteht, ist das Aufräumen einer Sanierung eher mit einem Bagger-Ansatz vergleichbar. Es werden größere Baustellen aufgerissen, die darüber hinaus über längere Zeit bestehen. Während dieser Phase wird die Testautomatisierung weiter ausgebaut. 

Nachdem die Legacy-Anwendung Feature-fähig ist, erfolgt die Umsetzung des eigentlichen Features. In der Regel wird dabei versucht, die bestehende Altanwendung so wenig wie möglich zu ändern. Stattdessen werden Schnittstellen geschaffen, die den Austausch von Daten oder das Aufrufen von Funktionen ermöglicht. Darüber hinaus kann auch die Datenbank eine gute Basis für den risikoarmen Austausch von Daten sein. 

In Abhängigkeit der umzusetzenden Features können die zweite und dritte Phase inkrementell ausgeführt werden, d.h. nach der Grundsanierung wechseln sich Phasen der Feature-bezogenen Sanierung und der Feature-Entwicklung ab. Auf diese Art und Weise wird Ihre bestehende Altanwendung schrittweise modernisiert und erweitert.

Methoden und Techniken der Software-Modernisierung

Wir helfen weiter

Die Modernisierung von Legacy-Software ist komplex, aber fast immer risikoärmer und kostengünstiger als ihre Neuentwicklung. Mit unserem iterativen und inkrementellen Vorgehen machen wir Ihre Software wieder Feature- und damit zukunftsfähig.

  • +49 40 600 90 75 70

  • info@codekeepers.de

Angewandte Szenarien