Legacy-Code ist älterer Code, der weiter gebraucht wird, aber schwer zu verstehen und zu ändern ist. Oft kennt ihn niemand mehr genau, Tests fehlen, und jede Änderung birgt das Risiko, an anderer Stelle etwas kaputtzumachen.
- Legacy-Code
Bestehender, meist älterer Programmcode, der im Betrieb unverzichtbar ist, dessen Pflege aber durch fehlendes Wissen, fehlende Tests oder veraltete Technik erschwert wird.
Beispiel: „Das Bestellmodul ist Legacy-Code aus dem Jahr 2012, und niemand traut sich, die Rabattberechnung anzufassen.“Das englische legacy bedeutet Erbe oder Vermächtnis. Michael Feathers hat 2004 eine knappe Definition geprägt: Legacy-Code ist Code ohne Tests.
Woran du Legacy-Code erkennst
An veralteten Versionen von Sprache und Framework, an fehlenden Tests, an Funktionen mit Hunderten Zeilen und an Kommentaren wie bitte nicht ändern. Und daran, dass Schätzungen für kleine Änderungen auffällig hoch ausfallen.
Bei Websites zeigt sich Legacy-Code oft daran, dass ein Update von PHP oder CMS nicht möglich ist, weil eigener Code oder alte Plugins dabei brechen würden.
Warum Legacy-Code entsteht
Meist ganz normal. Code, der vor zehn Jahren gut war, altert, weil sich Sprache, Werkzeuge und Anforderungen weiterentwickeln. Dazu kommen Abkürzungen unter Zeitdruck und Wechsel im Team, mit denen Wissen verloren geht; zusammen ergibt das technische Schulden.
Wie du Legacy-Code erneuerst
Schritt für Schritt statt auf einen Schlag. Zuerst Tests um das bestehende Verhalten legen, damit Änderungen auffallen, dann einzelne Teile per Refactoring verbessern oder ersetzen, während der Rest weiterläuft. Komplette Neuentwicklungen dauern fast immer länger als geplant, weil der alte Code mehr Sonderfälle kennt, als dokumentiert sind.
KI-Assistenten helfen inzwischen spürbar dabei, alten Code zu lesen, zu erklären und Tests dafür zu schreiben.