Zum Inhalt springen

Legacy-Code

Männliche Person, frontal, schaut in die Kamera; trägt kariertes Hemd über dunkelfarbigem T‑Shirt; heller Innenraum mit unscharfem Monitor oder Poster links und Fenster rechts.

von Richard Albrecht am 08.11.2026

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.

Siehe auch:

Technische Schulden (Technical Debt)

Der Aufwand, der sich ansammelt, wenn eine schnelle Lösung gewählt wird statt einer tragfähigen.

#Programmiersprachen

Refactoring

Die innere Form von Code verbessern, ohne sein Verhalten zu ändern.

#Programmiersprachen

Unit Testing

Das Prüfen einzelner Funktionen für sich, ohne Datenbank und ohne Netz.

#Deployment & Versionierung

Monolith

Eine Anwendung, deren Teile alle in einem gemeinsamen Programm stecken und gemeinsam ausgeliefert werden.

#Programmiersprachen

Core

Der Kern einer Software, auf dem Erweiterungen und Anpassungen aufbauen.

#Programmiersprachen

PHP

Die Programmiersprache, in der die meisten Websites auf dem Server laufen.

#Programmiersprachen