Zurück zum Blog
SoftwareLegacyModernisierung

Legacy-Software modernisieren: Strangler Fig Pattern und andere Strategien

·8 Min. Lesezeit

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:

Netscape: hat durch den Rewrite von Navigator den Browser-Markt an Internet Explorer verloren
Das neue System muss **alle Funktionen** des alten Systems nachbilden – auch die undokumentierten
Während des Rewrites entwickelt sich der **Markt weiter**, aber das alte System wird nicht mehr gepflegt
Rewrites dauern **2–3x länger** als geplant
**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

Kein Big Bang:: Das alte System bleibt lauffähig, während das neue wächst
Sofortiger Wert:: Neue Features werden sofort im neuen System gebaut und genutzt
Risikominimierung:: Wenn etwas schief geht, betrifft es nur den migrierten Teil
Lerneffekt:: Das Team sammelt Erfahrungen und kann die Strategie anpassen

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.

Interesse geweckt?

Lassen Sie uns über Ihr Projekt sprechen.

Kontakt aufnehmen
WhatsApp Chat