# Legacy Code mit KI modernisieren: was funktioniert und was schiefgeht

*Quelle: https://www.provimedia.de/blog/legacy-code-mit-ki-modernisieren · Stand: 2026-07-27*

> KI kann alten Code erklären, dokumentieren und testen — das ist der unterschätzte Gewinn. Beim Umschreiben liegen die Fallen.

**Der größte Nutzen von KI bei Altsystemen liegt nicht im Umschreiben, sondern im Verstehen. Ein Modell kann undokumentierten Code erklären, Abhängigkeiten sichtbar machen und Tests für vorhandenes Verhalten schreiben — genau die drei Dinge, die eine Modernisierung überhaupt erst planbar machen. Das automatische Übersetzen in eine neue Sprache oder ein neues Framework ist dagegen der riskanteste Einsatz.**

## Was ist Legacy Code?

Die nützlichste Definition stammt von Michael Feathers: Legacy Code ist Code ohne Tests. Nicht alter Code, nicht schlecht geschriebener Code — Code, bei dem man nicht überprüfen kann, ob eine Änderung etwas kaputt gemacht hat.

Diese Definition ist deshalb so brauchbar, weil sie das eigentliche Problem benennt. Altes System, das gut getestet ist, lässt sich gefahrlos ändern. Frisch generierter Code ohne Tests ist nach dieser Definition sofort Legacy — am Tag seiner Entstehung.

## Wobei hilft KI bei Altsystemen wirklich?

**Bei drei Aufgaben, die vor jeder Modernisierung stehen und die bisher am teuersten waren.**

- **Verstehen.** Ein Modell kann eine 900-Zeilen-Prozedur zusammenfassen, Verzweigungen aufzählen und benennen, welche Sonderfälle behandelt werden. Das ersetzt keine Prüfung, verkürzt aber die Einarbeitung von Tagen auf Stunden.
- **Dokumentieren.** Aus vorhandenem Code eine Beschreibung des Ist-Zustands erzeugen — mit dem ausdrücklichen Hinweis, dass es der Ist-Zustand ist und nicht der Soll-Zustand.
- **Absichern.** Tests schreiben, die das aktuelle Verhalten festhalten. Das ist die Voraussetzung für jede weitere Änderung und die Arbeit, die niemand gern macht.

Der dritte Punkt hat einen Haken, der bekannt sein muss: Solche Tests zementieren auch die vorhandenen Fehler. Das ist beabsichtigt — Sie sichern das Verhalten, nicht die Richtigkeit — aber es muss allen Beteiligten klar sein, sonst gilt ein grüner Testlauf später als Korrektheitsnachweis.

## Warum ist das automatische Umschreiben so riskant?

**Weil das Wissen, das in altem Code steckt, nicht im Code steht.** Eine Bedingung, die auf den ersten Blick unsinnig wirkt, ist häufig die Spur eines realen Sonderfalls: ein Kunde mit abweichendem Vertrag, ein Feiertag, eine Altdatenbestand-Eigenheit.

Ein Modell, das den Code in eine neue Sprache überträgt, sieht diese Bedingung als Merkwürdigkeit und vereinfacht sie mit einiger Wahrscheinlichkeit weg. Das Ergebnis ist lesbarer, kompiliert, besteht die Tests — und verhält sich in dem einen Fall anders, für den die Bedingung existierte. Dieser Fall fällt typischerweise erst im Betrieb auf, und die Ursache ist dann schwer zu finden, weil der neue Code richtig aussieht.

## Wie gehe ich eine Modernisierung mit KI-Unterstützung an?

**In vier Phasen, wobei die ersten beiden den größten Teil des Nutzens liefern.**

- **Phase 1 — Kartieren.** Was gibt es, was hängt woran, was wird tatsächlich benutzt? Hier ist KI stark und das Risiko null, weil nichts verändert wird.
- **Phase 2 — Absichern.** Tests für das aktuelle Verhalten der Bereiche, die angefasst werden sollen. Nicht für alles — für das, was drankommt.
- **Phase 3 — Einkreisen.** Den alten Teil hinter einer Schnittstelle kapseln und Stück für Stück ersetzen, statt in einem Zug zu tauschen. Das alte System bleibt bis zuletzt lauffähig.
- **Phase 4 — Ersetzen.** Jetzt darf ein Modell übersetzen — pro Baustein, mit den Tests aus Phase 2 als Prüfmaßstab und einem Menschen, der jede Vereinfachung hinterfragt.

Wer bei Phase 4 anfängt, überspringt genau die Arbeit, die den Unterschied zwischen einer Modernisierung und einem teuren Neubau mit unbekanntem Verhalten ausmacht.

## Woran erkenne ich, dass eine Modernisierung sich lohnt?

**An den Kosten der Änderungen, nicht am Alter des Codes.** Ein zwölf Jahre altes System, an dem zweimal im Jahr eine Kleinigkeit geändert wird, ist kein Problem, sondern eine abgeschriebene Investition.

Die Signale, die zählen: Änderungen dauern unverhältnismäßig lange; Fehlerbehebungen erzeugen neue Fehler; niemand traut sich an bestimmte Bereiche; eine Anforderung lässt sich technisch nicht mehr umsetzen; Sicherheitsaktualisierungen der eingesetzten Bibliotheken sind nicht mehr verfügbar. Der letzte Punkt gewinnt an Gewicht, weil die Meldepflichten aus dem EU Cyber Resilience Act ab dem 11. September 2026 greifen — wer aktiv ausgenutzte Schwachstellen binnen 24 Stunden melden muss, braucht ein System, in dem sich Schwachstellen überhaupt schließen lassen.

Wenn Sie diesen Weg begleitet haben möchten: Genau daran arbeitet unsere [SaaS- und Software-Entwicklung](/leistungen/saas-entwicklung).

## Häufige Fragen zu Legacy Code

### Ab wann gilt Code als Legacy?

Nach Michael Feathers ab dem Moment, in dem er keine Tests hat. Alter spielt in dieser Definition keine Rolle — was gestern generiert und nicht abgesichert wurde, fällt darunter.

### Kann eine KI eine alte Anwendung komplett neu bauen?

Sie kann eine Anwendung bauen, die dasselbe zu tun scheint. Ob sie dieselben Sonderfälle behandelt, entscheidet sich an den Tests aus Phase 2 — ohne die haben Sie keinen Maßstab, sondern eine Hoffnung.

### Was ist mit COBOL, ABAP und ähnlichen Altsprachen?

Für das Erklären und Dokumentieren funktionieren Modelle auch dort brauchbar. Bei der Übersetzung gilt dasselbe wie sonst, nur verschärft: Je spezieller die Sprache, desto weniger Trainingsmaterial und desto eher werden Eigenheiten wegvereinfacht.

### Wie lange dauert so eine Modernisierung?

Das hängt fast vollständig davon ab, wie viel in Phase 2 abzusichern ist — und das lässt sich nach Phase 1 seriös schätzen, vorher nicht. Eine Schätzung vor der Kartierung ist geraten.

> **In Phase 4 entscheidet sich alles daran, ob jede Vereinfachung auffällt.** [Code Guardian](/code-guardian) prüft Änderungen gegen den Bestand statt gegen den Auftrag — ein kalter Blick auf den Diff, der fragt, was hier eigentlich verschwunden ist.

## Quellen

- Michael Feathers, *Working Effectively with Legacy Code* (Definition: Code ohne Tests).
- Verordnung (EU) 2024/2847 (Cyber Resilience Act): Meldepflichten ab 11. September 2026, Hauptpflichten ab 11. Dezember 2027.

*Stand: 27. Juli 2026. Allgemeine fachliche Einordnung, keine Rechtsberatung.*

---

Kanonische Version: <https://www.provimedia.de/blog/legacy-code-mit-ki-modernisieren>
