Das Legacy-Dilemma
Jedes erfolgreiche Unternehmen hat sie: **Legacy-Software**. Systeme, die seit Jahren oder Jahrzehnten laufen, Geschäftsprozesse abbilden und unverzichtbar sind – aber zunehmend zur Last werden. Die Wartung wird teurer, neue Anforderungen lassen sich kaum umsetzen, und Entwickler für die alte Technologie sind schwer zu finden.
Der größte Fehler: Alles neu schreiben
Der Impuls ist verständlich: "Wir schreiben alles von Grund auf neu!" Doch die Geschichte zeigt, dass **Big-Bang-Rewrites** in den meisten Fällen scheitern:
**Joel Spolsky (Stack Overflow):** "Den Code von Grund auf neu zu schreiben ist die schlimmste strategische Fehlentscheidung, die ein Softwareunternehmen treffen kann."
Das Strangler Fig Pattern
Benannt nach der Würgefeige, die langsam einen bestehenden Baum umschlingt und schließlich ersetzt, beschreibt dieses Pattern einen **schrittweisen Modernisierungsansatz**:
So funktioniert es
1. **Neue Funktionalität** wird im neuen System gebaut
2. **Bestehende Funktionalität** wird Stück für Stück migriert
3. Ein **Proxy/Router** leitet Anfragen an das alte oder neue System weiter
4. Mit der Zeit übernimmt das neue System **immer mehr Aufgaben**
5. Wenn das alte System keine Anfragen mehr erhält, wird es **abgeschaltet**
Vorteile
Weitere Modernisierungsstrategien
Rehost (Lift & Shift)
Die Anwendung wird **unverändert** in eine neue Umgebung migriert (z. B. von On-Premise in die Cloud). Schnell und günstig, aber löst keine architekturellen Probleme.
Replatform
Die Anwendung wird für die neue Plattform **leicht angepasst** (z. B. Datenbank-Migration von Oracle zu PostgreSQL), ohne die Architektur grundlegend zu ändern.
Refactor
Interne Strukturen werden **verbessert**, ohne die externe Funktionalität zu ändern. Ideal für gut strukturierten Code, der nur aufgeräumt werden muss.
Encapsulate
Das Legacy-System wird **hinter einer modernen API versteckt**. Neue Systeme greifen nur über die API zu. Das alte System bleibt intern unverändert, aber die Integration wird sauber.
Die richtige Strategie wählen
| Situation | Empfohlene Strategie |
|---|---|
| System funktioniert, nur Infrastruktur veraltet | Rehost |
| Einzelne Komponenten sind problematisch | Strangler Fig |
| Code ist wartbar, aber unstrukturiert | Refactor |
| Altes System muss mit neuem integriert werden | Encapsulate |
| Technologie ist komplett veraltet | Strangler Fig oder Rebuild (nur Module!) |
Praktische Tipps
1. **Bestandsaufnahme zuerst** – Welche Teile sind kritisch? Wo liegt der meiste Pain?
2. **Mit dem wertvollsten Modul beginnen** – Modernisieren Sie zuerst, was den größten Business Value hat
3. **Tests schreiben, bevor Sie anfassen** – Charakterisierungstests sichern das bestehende Verhalten ab
4. **Feature-Freeze für das Altsystem** – Neue Features nur noch im neuen System
5. **Messbar machen** – Definieren Sie KPIs für den Modernisierungserfolg
Fazit
Legacy-Modernisierung ist kein Sprint, sondern ein **Marathon**. Das Strangler Fig Pattern bietet den sichersten Weg, weil es kontinuierlichen Fortschritt ermöglicht, ohne das laufende Geschäft zu gefährden. Beginnen Sie klein, liefern Sie regelmäßig Wert und bauen Sie Momentum auf.