Modernisierung von Altsystemen: was zuerst, und in welcher Reihenfolge

Die Entscheidung auf Portfolioebene — welche Systeme Budget bekommen, welche stillgelegt werden und welche man bewusst in Ruhe lässt.

Transparenzhinweis. legacy-modernisierung.de wird von der Chudovo OÜ betrieben. Die Kennzahlen und Zeitangaben in diesem Leitfaden sind Durchschnitte und Spannen, die Chudovo aus eigenen abgeschlossenen Projekten veröffentlicht — Referenzwerte eines Anbieters, keine Branchendurchschnitte. Die zitierten Frameworks stammen von AWS und Microsoft.


Modernisierung und Migration sind zwei verschiedene Probleme

Die beiden Begriffe werden austauschbar verwendet, und daraus entstehen die meisten fehlgeplanten Projekte.

Modernisierung verbessert die Qualität der bestehenden Codebasis, der Systemarchitektur und der automatisierten Tests, ohne das System auf eine andere Plattform zu bringen.

Migration bedeutet den Wechsel auf eine andere Plattform, Hosting-Infrastruktur oder einen anderen Technologie-Stack.

Das sind Antworten auf unterschiedliche Beschwerden. Welche Antwort passt, lässt sich meist aus dem Satz ablesen, mit dem das Projekt angefragt wird:

BeschwerdeTatsächliches ProblemAntwort
„Die Infrastruktur kostet zu viel, die Hardware ist am Lebensende“PlattformMigration
„Eine einzeilige Änderung dauert drei Wochen, und wir haben Angst zu deployen“Code und ArchitekturModernisierung
„Wir bekommen die Last zur Hochsaison nicht skaliert“Meist Plattform, manchmal ArchitekturKommt darauf an — bewerten
„Niemand versteht mehr das Abrechnungsmodul“CodeModernisierung

In vielen Projekten werden beide kombiniert — aber als zwei Vorhaben mit eigenen Zielen, nicht als eines. Ein Projekt, das Migration verkauft und Modernisierung meint, liefert ein System, das am neuen Ort genauso schwer zu ändern ist wie am alten.


Welche Systeme Budget bekommen

Bevor irgendein Vorgehen gewählt wird, steht eine andere Frage an: welche Systeme überhaupt. Ein Portfolio ist kein gleichmäßiges Feld, und das Budget verteilt sich selten dorthin, wo es wirkt.

Matrix zur Sichtung des Anwendungsportfolios Eine Zwei-mal-zwei-Matrix. Die senkrechte Achse ist der Geschäftswert von niedrig bis hoch, die waagerechte Achse der technische Zustand von schlecht bis gut. Hoher Geschäftswert bei schlechtem technischem Zustand bedeutet: zuerst modernisieren, hierhin gehört das Budget. Hoher Geschäftswert bei gutem Zustand bedeutet pflegen und schützen. Niedriger Geschäftswert bei schlechtem Zustand bedeutet stilllegen oder durch Standardsoftware ersetzen. Niedriger Geschäftswert bei gutem Zustand bedeutet dulden und einen Prüftermin setzen. Schritt 1 — das Portfolio sichten, bevor ein Vorgehen gewählt wird Technischer Zustand — Wartbarkeit, Testabdeckung, Zustand der Abhängigkeiten schlecht gut Geschäftswert hoch niedrig ZUERST MODERNISIEREN Kernsysteme, auf denen das Geschäft läuft und die unsicher geworden sind Hierhin gehört das Budget Meist 10–20 % des Portfolios PFLEGEN Wertvoll und gesund. Abhängigkeiten aktuell halten, Testabdeckung schützen. Nicht modernisieren, was funktioniert STILLLEGEN oder ERSETZEN Teuer im Betrieb, wenig Geschäftswert. Ist der Prozess Standard, Software kaufen statt neu bauen. Modernisierung hier ist verbranntes Geld DULDEN Funktioniert, günstig im Betrieb, blockiert niemanden. Prüftermin setzen. Dann neu bewerten. Bewusstes Nichtstun ist eine Entscheidung
Portfolio-Sichtung. Der typische Fehler ist, das Budget im unteren linken Quadranten auszugeben — Systeme zu modernisieren, die hätten stillgelegt werden sollen — weil genau diese die lautesten Beschwerden erzeugen.

Die beiden Achsen sind bewusst gewählt. Geschäftswert ist keine Meinung, sondern eine Frage an das Geschäft: Welcher Umsatz, welcher Kernprozess, welche regulatorische Pflicht hängt daran? Technischer Zustand ist ebenfalls messbar: Wartbarkeit, Testabdeckung, Zustand der Abhängigkeiten.

Systeme werden selten nach diesen beiden Achsen bewertet, sondern nach der Lautstärke der Beschwerden. Lautstärke korreliert mit Ärger, nicht mit Geschäftswert — und deshalb landet Budget regelmäßig in Systemen, deren richtige Antwort Stilllegen gewesen wäre.


Das Vorgehen bestimmen

Für die Systeme im oberen linken Quadranten stellt sich die nächste Frage: Liegt das Problem im Code oder in der Plattform? Und wie tief muss der Eingriff gehen?

Modernisierung gegen Migration, und die drei Tiefen der Modernisierung Eine Zwei-mal-zwei-Matrix. Die senkrechte Achse fragt, ob Code und Architektur das Problem sind, die waagerechte, ob Plattform und Infrastruktur das Problem sind. Trifft keines zu, wird das System beibehalten. Ist nur der Code das Problem, wird im Bestand modernisiert. Ist nur die Plattform das Problem, wird migriert durch Rehosting oder Replatforming. Sind beide das Problem, wird zuerst migriert, um die Plattform zu stabilisieren, und danach modernisiert, weil Modernisierung auf ausfallender Infrastruktur verlorene Arbeit ist. Darunter zeigt eine Leiter drei Tiefen der Modernisierung: Code-Ebene mit vier bis acht Wochen, Architekturebene mit drei bis sechs Monaten und System-Redesign mit sechs bis achtzehn Monaten. Schritt 2 — liegt das Problem im Code, in der Plattform oder in beidem? IM BESTAND MODERNISIEREN Plattform in Ordnung. Code und Architektur blockieren Änderungen. Keine Migration nötig — auch keine mitbündeln MIGRIEREN, DANN MODERNISIEREN Beides ist defekt. Zuerst die Plattform stabilisieren, dann den Code. Refactoring auf ausfallender Hardware ist verloren BEIBEHALTEN Keines von beidem schränkt wirklich ein. Prüftermin setzen und weitermachen MIGRIEREN Code ist handhabbar. Hosting, Kosten oder Hardware am Lebensende. Rehosting oder Replatforming — nicht neu bauen Code / Architektur ist das Problem ja nein Plattform / Infrastruktur ist das Problem nein ja Schritt 3 — wie tief geht die Modernisierung? Code-Ebene Refactoring, Abhängigkeiten, Testabdeckung, Dokumentation 4–8 Wochen Architekturebene Module entkoppeln, API-Grenzen, Deployment-Einheit aufteilen 3–6 Monate System-Redesign Komponenten ohne Verbesserungspfad neu bauen, Logik erhalten 6–18 Monate
Die Diagonale ist die wichtige Aussage: Sind beide Seiten defekt, wird die Reihenfolge entscheidend. Zuerst zu modernisieren und danach zu migrieren bedeutet, die Arbeit zweimal zu machen.

Die drei Tiefen entsprechen den Modernisierungsansätzen, die Chudovo für die Legacy-System-Modernisierung beschreibt: Verbesserung auf Code-Ebene, wenn die Architektur stabil ist und nur die Codequalität Änderungen erschwert; Verbesserung auf Architekturebene, wenn enge Modulkopplung, fehlende API-Grenzen oder monolithische Deployments die Entwicklungsgeschwindigkeit begrenzen; System-Redesign, wenn einzelne Komponenten keinen sinnvollen Verbesserungspfad mehr haben — wobei die Geschäftslogik erhalten bleibt.

Welcher Weg für eine einzelne Anwendung der richtige ist, behandelt der Leitfaden zur Strategie für die Anwendungsmodernisierung im Detail. Microsofts Cloud Adoption Framework und die AWS-Migrationsstrategien decken die Migrationsseite ab.


Anzeichen, dass ein System in den oberen linken Quadranten gehört

Die Entwicklungsgeschwindigkeit hat abgenommen. Aufgaben, die früher Tage brauchten, benötigen Wochen. Entwickler müssen vor jeder Änderung große Teile des bestehenden Kontextes analysieren.

Bestimmte Module werden fast nicht mehr geändert. Das Team vermeidet Änderungen aus Angst vor unerwarteten Nebeneffekten. In diesen Modulen sammeln sich Fehler an, die nie behoben werden.

Abhängigkeiten lassen sich nicht mehr aktualisieren. Bibliotheken bleiben auf veralteten Versionen, weil das Aktualisieren einer Abhängigkeit Probleme bei anderen Paketen verursacht.

Es gibt keine automatisierten Tests. Ob eine Änderung funktioniert, zeigt sich erst beim Ausführen — und mit jeder Änderung steigt das Risiko zusätzlicher Probleme.

Die Einarbeitung neuer Entwickler dauert sehr lange. Mehrere Wochen bis zur Produktivität, weil Dokumentation und Tests fehlen und die Architektur nicht nachvollziehbar ist.

In Code-Reviews treten immer dieselben Probleme auf. Technische Schulden werden regelmäßig sichtbar, bleiben aber bestehen, weil selbst kleine Änderungen neue Probleme nach sich ziehen.

Diese Liste beschreibt ein System, das funktioniert, an dem sich aber nicht mehr arbeiten lässt. Das ist der Zustand, für den Modernisierung gedacht ist — und er ist etwas anderes als ein System, das zu teuer läuft.


Reihenfolge: die Roadmap

1. Audit vor der Roadmap. Abhängigkeiten und Architektur werden aus der bestehenden Codebasis rekonstruiert, auch wenn keine Dokumentation existiert. Jede Schätzung ohne Audit erbt deren Fehler.

2. Sichtbarkeit zuerst. Logging, Monitoring, Fehlerverfolgung — bevor etwas geändert wird. Ohne Ausgangsmessung lässt sich später nicht zeigen, dass die Arbeit gewirkt hat.

3. Ein Sicherheitsnetz einziehen. Tests um die Bereiche, die als Erstes angefasst werden. Nicht um das ganze System — das wäre ein Projekt für sich und verzögert alles andere.

4. Abhängigkeiten stabilisieren. Veraltete Bibliotheken und nicht mehr unterstützte Laufzeiten sind die Voraussetzung für alles Weitere, kein eigenständiges Ziel.

5. Den schmerzhaftesten Bereich zuerst angehen. Nicht den größten. Der Bereich, der die meisten Änderungsanfragen blockiert, liefert das sichtbarste Ergebnis und finanziert die Fortsetzung.

6. Architektur erst danach. Modulgrenzen und Deployment-Einheiten anzufassen hat Sinn, wenn Tests und Sichtbarkeit stehen — vorher ist es Arbeit ohne Rückmeldung.

Das System bleibt durchgehend verfügbar. Gearbeitet wird phasenweise, innerhalb der bestehenden Entwicklungs-, Test- und Deployment-Prozesse.


Was sich messbar ändert

Durchschnittswerte aus abgeschlossenen Chudovo-Projekten:

BereichTypische Verbesserung
Zeit für die Umsetzung neuer Funktionen30–50 % schneller
Entwicklerzeit für Fehlerbehebung und Wartung25–40 % weniger
Fehlerquote nach dem Refactoring30–60 % niedriger
Einarbeitungszeit neuer Entwickler30–50 % kürzer
Testabdeckungvon nahezu 0 % auf 60–80 %

Das sind Durchschnitte über Projekte hinweg. Sie taugen, um einen Business Case plausibel zu machen — nicht als Prognose für ein bestimmtes System.


Dauer

UmfangDauer
Stabilisierung von Abhängigkeiten, Refactoring kleinerer Systeme4–8 Wochen
Modernisierung der Architektur mittelgroßer Systeme3–6 Monate
Große Enterprise-Systeme, je nach Komplexität6–18 Monate

Eine belastbare Aufwandsschätzung entsteht nach dem Audit, nicht davor.


Wo Modernisierungsstrategien scheitern

Das Budget geht in den unteren linken Quadranten. Systeme, die stillgelegt gehörten, werden modernisiert, weil sie die lautesten Beschwerden erzeugen.

Modernisierung und Migration werden vermischt. Ein Vorhaben mit zwei Zielen hat am Ende keines erreicht und lässt sich auch nicht bewerten.

Die Reihenfolge ist umgedreht. Bei defekter Plattform zuerst zu modernisieren heißt, die Arbeit nach der Migration teilweise zu wiederholen.

Es gibt kein Abbruchkriterium. Ohne definiertes Ziel — Testabdeckung, konkrete Module, messbare Vorlaufzeit — dehnt sich Modernisierung aus, bis das Budget endet, und das Geschäft sieht kein Ergebnis.

Es wurde nichts vorher gemessen. Ohne Ausgangswerte ist am Ende nicht belegbar, ob sich etwas verbessert hat. Das ist der häufigste Grund, warum eine zweite Phase nicht finanziert wird.

Alles auf einmal. Ein Programm, das das ganze Portfolio gleichzeitig anfasst, liefert achtzehn Monate lang nichts Sichtbares und wird in Monat zwölf gestoppt.

Das Geschäft sitzt nicht mit am Tisch. Die Priorisierung nach Geschäftswert kann die IT nicht allein vornehmen — sie hat die Zahlen nicht.


Messung

Vor Beginn erheben, danach messen:

  • Vorlaufzeit von Merge bis Produktion
  • Deployment-Frequenz
  • Fehlerquote bei Änderungen
  • Wiederherstellungszeit nach einem Vorfall
  • Testabdeckung in den bearbeiteten Bereichen
  • Einarbeitungszeit bis zum ersten substanziellen Commit
  • Anteil der Entwicklerzeit, der in Wartung statt in neue Funktionen fließt

Der letzte Punkt ist der, den das Geschäft versteht. Die übrigen erklären ihn.


FAQ

Was ist der Unterschied zwischen Modernisierung und Migration? Modernisierung verbessert die Qualität der bestehenden Codebasis, der Systemarchitektur und der automatisierten Tests, ohne das System auf eine andere Plattform zu migrieren. Migration bedeutet den Wechsel auf eine andere Plattform, Hosting-Infrastruktur oder einen anderen Technologie-Stack. In vielen Projekten werden beide kombiniert, um unterschiedliche Probleme unabhängig voneinander zu lösen.

Ist es möglich, Systeme ohne Migration auf eine andere Plattform zu modernisieren? Ja. Modernisierung kann auf Systemen durchgeführt werden, die weiterhin auf derselben Plattform laufen. Wenn Entwicklerproduktivität, Fehlerquote und sichere Änderbarkeit die Ziele sind, passt Modernisierung besser als ein Plattformwechsel.

Wann sollte Modernisierung statt Migration gewählt werden? Bei Problemen mit Codequalität, technischer Architektur oder technischen Schulden. Sind Änderungen an der Codebasis riskant, läuft das System langsam oder bestehen strukturelle Probleme, hilft Modernisierung. Probleme im Bereich Plattform oder Hosting lassen sich dagegen nur durch Migration lösen.

Wie lange dauert die Modernisierung eines Enterprise-Systems? Die Stabilisierung von Abhängigkeiten oder das Refactoring kleinerer Systeme dauert in der Regel vier bis acht Wochen. Die Modernisierung der Architektur mittelgroßer Systeme nimmt meist drei bis sechs Monate in Anspruch. Große Enterprise-Systeme benötigen je nach Komplexität sechs bis achtzehn Monate.

Bleibt das System während der Modernisierung verfügbar? Ja. Gearbeitet wird phasenweise, unter Einhaltung der bestehenden Entwicklungs-, Test- und Deployment-Prozesse.

Lassen sich auch undokumentierte Systeme modernisieren? Ja. Abhängigkeiten und Architektur werden direkt aus der bestehenden Codebasis rekonstruiert. Fehlende Dokumentation ist ein Befund des Audits, kein Ausschlusskriterium.

Welcher Anteil eines Portfolios sollte modernisiert werden? In der Regel ein kleiner. Hoher Geschäftswert bei schlechtem technischem Zustand trifft meist auf zehn bis zwanzig Prozent der Systeme zu. Der Rest gehört in Pflege, Duldung oder Stilllegung — und jede dieser drei ist eine legitime Entscheidung.

Wie wird begründet, ein System bewusst nicht anzufassen? Mit einem Prüftermin. Duldung ohne Datum ist Vergessen; Duldung mit Datum ist eine Entscheidung, die sich später überprüfen lässt.


Quellen und weiterführende Literatur

Eugene begann seine Karriere bei Chudovo im Jahr 2015. Der Experte ist für Beratungsleistungen verantwortlich, die unter anderem eine enge Kommunikation mit den Kunden, die Analyse ihrer Bedürfnisse, die Entwicklung maßgeschneiderter Softwarestrategien usw. umfassen. Während seiner Tätigkeit bei Chudovo nahm ein IT-Berater an über 17 Projekten teil, die ein breites Spektrum an Kundendienstleistungen abdeckten und Kundenprobleme aus geschäftlicher Sicht lösten. Dank Eugenes Beteiligung konnten die Kunden eine effiziente Strategie für das Geschäftswachstum sowie eine langfristige Technologie-Roadmap entwickeln. Eugene nimmt in der Rolle des IT-Beraters aktiv an Softwareentwicklungsprojekten teil und erstellt Vorschläge für die Kunden.