Pillar Page
Legacy-System-Modernisierung
Inkrementelles Monolith-zu-Microservices-Refactoring, Migration von veralteten Technologien zu modernen Stacks, Cloud-Migration — ohne Business-Downtime, mit Rollback-Plan und vollständigem Audit-Trail.
Jedes Unternehmen hat irgendein Legacy-System. Manche haben mehrere. Eine Buchhaltungsanwendung aus dem Jahr 2008, die irgendwie noch läuft. Ein CRM, das von Beratern geschrieben wurde, an die sich niemand mehr erinnert. Ein Lager, das in Access läuft. Jedes davon wird irgendwann ersetzt werden müssen — die Frage ist nicht ob, sondern wann und wie.
Legacy-System-Modernisierung ist eine der schwierigsten Arten von IT-Projekten. Sie erfordert das Ausbalancieren dreier Kräfte: Business-Kontinuität (das System muss die ganze Zeit weiterlaufen), Einführung moderner Technologien (Microservices, Cloud, KI) und Risikokontrolle (jedes Refactoring kann etwas kaputtmachen, das jahrelang funktioniert hat).
Warum nicht einfach „von Grund auf neu schreiben"?
Aus unserer Erfahrung sind 9 von 10 erfolgreichen Modernisierungen inkrementelles Refactoring, kein Rewrite. Rewrites sind konzeptionell verlockend („wir starten mit einem weißen Blatt"), haben in der Praxis aber drei fundamentale Probleme:
- Unsichtbare Geschäftslogik. Das alte System enthält jahrelang gewachsene Geschäftsregeln — Sonderkonditionen für die größten Kunden, Steuerbefreiungen für bestimmte Branchen, Workarounds für Regulierungen aus 2015. Das meiste ist nicht dokumentiert. Ein Rewrite muss all das aus den Erinnerungen von Personen oder aus Code-Analyse rekonstruieren.
- Doppelte Arbeit. Während das neue System geschrieben wird, fordert das Business weiterhin Änderungen am alten (Regulierungen, neue Kunden, kleine Bugs). Das Team verdoppelt entweder die Arbeit (Änderungen an zwei Stellen) oder friert das alte System ein (Geschäftsrisiko).
- Big-Bang-Deployment. Nach einem Jahr Arbeit ist das neue System „fast fertig". Das Umschalten aller Nutzer in einer Nacht erzeugt monumentale Risiken. Jedes unerwartete Problem bedeutet den Rückweg zum alten System, Verlust an Teammoral und erodierendes Vertrauen des Business.
Inkrementelles Refactoring (meist nach dem Strangler-Fig-Muster) löst alle drei: Geschäftslogik wird schrittweise entdeckt, eine Source of Truth pro Entität, Deployment in Etappen mit Feature Flags.
Sechs Modernisierungsmuster
Jedes adressiert ein konkretes Risiko. In den meisten Projekten kombinieren wir mehrere und wählen das Muster pro Modul.
Strangler Fig
Schrittweises „Umranken" des alten Systems mit neuen Komponenten. Der alte Code läuft weiter, aber jedes neue Feature geht in einen neuen Microservice, und bestehende Module werden eines nach dem anderen ersetzt. Nach 12-24 Monaten wird der alte Monolith abgeschaltet.
Anti-corruption layer
Ein Adapter, der neuen Code vor den Eigenheiten des alten Systems schützt (unleserliche Feldnamen, seltsame Datumsformate, inkonsistente Typen). Die gesamte „hässliche" Logik wird an einer Stelle isoliert — neuer Code operiert auf einem sauberen Domain-Modell.
Database refactoring
Muster aus Refactoring Databases (Ambler/Sadalage): Expand-and-Contract für Schemamigrationen, Datenvalidierung vor dem Löschen alter Spalten, paralleler Betrieb beider Schemata während der Anwendungsmigration.
Branch by abstraction
Einführung einer Abstraktionsschicht um die alte Komponente, parallele Implementierung der neuen Komponente, schrittweises Umschalten des Traffics von 0% auf 100% (Feature Flag). Ohne „Big-Bang"-Deployment.
Shadow mode
Der neue Code läuft parallel zum alten — beide verarbeiten dieselben Anfragen, aber nur die Ergebnisse des alten Systems erreichen den Nutzer. Die Ergebnisse werden offline verglichen. Nach Bestätigung der Übereinstimmung (typischerweise 2-4 Wochen) schalten wir den Traffic auf den neuen Code.
Event sourcing für Migration
Wir zeichnen den Strom der Geschäftsereignisse aus dem alten System auf und spielen ihn im neuen ab. Das erlaubt eine vorgelagerte Validierung der neuen Architektur ohne Produktivrisiko sowie die Rückkehr zu beliebigen historischen Zuständen.
Typischer Modernisierungsfahrplan
Für ein mittelgroßes System (Monolith mit ~200 Tsd. Codezeilen, 5-10 Geschäftsmodulen):
- Monat 1: Discovery und Dokumentation. Reverse Engineering der Architektur, Abhängigkeitsmapping, Identifikation von Datenflüssen, Dokumentation der Geschäftsprozesse mit Unterstützung der Business-Stakeholder.
- Monat 2: Zielarchitektur und Pilot. Design der neuen Architektur, Technologieauswahl, Pilot am einfachsten Modul (Proof of Concept). Erste Validierung des Ansatzes.
- Monate 3-4: Herauslösen des ersten Produktivmoduls. Strangler-Fig-Muster, Shadow Mode für 2-3 Wochen, Traffic-Cutover, Hypercare. Erster realer Geschäftswert.
- Monate 5-12: Iteratives Herauslösen weiterer Module. Jedes in einem 4-6-Wochen-Zyklus: Refactor → Tests → Shadow → Produktion → Hypercare. Kontinuierliche Prozessverbesserung, Verkürzung der Zeit pro Modul.
- Monate 12-18: Datenmigration und Stilllegung des Monolithen. Sobald alle kritischen Module herausgelöst sind, finalisieren wir die historische Datenmigration, schalten das alte System ab und archivieren es. Feiern.
Legacy-System vs. modernisiert
| Aspekt | Legacy-System (typisch) | Nach Modernisierung |
|---|---|---|
| Zeit für ein neues Feature | 4-8 Wochen (hohes Regressionsrisiko) | 3-7 Tage (automatisierte Tests minimieren das Risiko) |
| Testabdeckung | 5-15% (oder gar keine) | >80%, in der CI/CD-Pipeline |
| Verfügbarkeit von Entwicklern | Niedrig (veraltete Technologie) | Hoch (populäre, moderne Stacks) |
| Sicherheit | Alte Bibliotheken mit ungepatchten CVEs | OWASP-Scanning, gitleaks, automatisierte Updates |
| Skalierung | Vertikal (mehr Ressourcen für den Monolithen) | Horizontal (Skalierung einzelner Microservices) |
| Observability | Logs in Dateien, keine Metriken | Prometheus + Grafana + Sentry + SIEM |
| Compliance (DSGVO, EU AI Act, ISO 27001) | Aufwendig, teuer nachzuweisen | In die Architektur eingebaut, audit-ready |
Sechs typische Risiken — und wie wir sie adressieren
Risiko: Keine Tests im Legacy-System
Mitigation: Zuerst bauen wir Characterization-Tests (Capture-Tests) — wir zeichnen das aktuelle Systemverhalten auf Basis von Produktivlogs und Traffic-Aufzeichnungen auf. Erst dann beginnen wir mit dem Refactoring, mit Tests als Sicherheitsnetz.
Risiko: Wissen konzentriert in einer Person („Truck Factor 1")
Mitigation: Der Wissenstransfer beginnt in der ersten Projektwoche. Alle Meetings mit der Person, die das System kennt, werden aufgezeichnet und transkribiert, Schlüsselprozesse dokumentiert, Architekturentscheidungen begründet. Nach dem Projekt versteht das gesamte Team das System.
Risiko: Temporäre Teamverlangsamung
Mitigation: In den ersten 2-3 Monaten wartet das Team das alte System + baut das neue. Eine natürliche Verlangsamung der Änderungsgeschwindigkeit. Wir mildern sie ab durch: Priorisierung von Änderungen, die nur in das neue System gehen, Freeze für niedrigpriore Änderungen am Altcode.
Risiko: Datenmigration
Mitigation: Jede Datenmigration hat drei Phasen: Dry-Run (auf einer Produktivkopie), Staging (in der Testumgebung mit echter Datenskala), Produktion (in einem Wartungsfenster oder inkrementell). Rollback-Plan steht vor Start bereit.
Risiko: Organisatorischer Widerstand
Mitigation: Kommunikation mit dem Business ab Tag eins: warum wir modernisieren, was sich für den Nutzer ändert, welcher Zeitplan, wie wir Erfolg messen. Die erste Iteration wird so gewählt, dass sie schnell sichtbaren Mehrwert zeigt (z. B. ein neues UI oder ein schnellerer Bericht).
Risiko: Kostenunterschätzung
Mitigation: Discovery (1-2 Wochen) vor der Projektkalkulation. 2-3-wöchige Iterationen mit konkreten Lieferergebnissen — leichter den Kurs zu korrigieren als in einem langen „Alles auf einmal"-Projekt. Budget mit 20-30% Puffer für Unvorhergesehenes.
Häufig gestellte Fragen
Was ist ein Legacy-System?
Warum modernisieren, wenn das System läuft?
Ist es nicht einfacher, alles von Grund auf neu zu schreiben?
Erfordert Modernisierung Business-Downtime?
Wie lange dauert eine typische Modernisierung?
Von welchen Technologien migrieren wir am häufigsten?
Was passiert mit bestehenden Integrationen zu anderen Systemen?
Wie reduzieren Sie das Geschäftsrisiko?
Was tun mit Systemdokumentation, die nicht existiert?
Wie stehen die Modernisierungskosten im Vergleich zur Wartung des alten Systems?
Beginnen wir mit einem Audit
Einwöchiges technisches Audit: Abbildung des aktuellen Stands, Identifikation der dringendsten Modernisierungsbereiche, phasenweiser Plan mit konkreten geschäftlichen Ergebnissen in der ersten Iteration.