Zum Inhalt springen

Glossar · L

Legacy-Code

Älterer Code, der oft schwer zu warten oder zu ändern ist, da er nicht den aktuellen Standards entspricht.

Definition

Legacy-Code bezeichnet bestehenden Quellcode in Softwareprojekten, der aus älteren Entwicklungsphasen stammt. Er ist häufig durch veraltete Programmierpraktiken, Technologien oder Architekturen geprägt. Der Begriff impliziert nicht zwingend schlechte Qualität, sondern verweist vor allem auf die historische Herkunft und den Abstand zu aktuellen Standards.

Typischerweise ist Legacy-Code schwierig zu warten oder zu erweitern, da er oft unzureichend dokumentiert ist und auf veralteten Frameworks oder Programmiersprachen basiert. Die Komplexität und fehlende Modularität erschweren Änderungen und Fehlerbehebungen.

Was bedeutet das für Ihr Unternehmen?

Legacy-Code ist oft das Herz eines Unternehmens: Er läuft seit Jahren und bildet Abläufe ab, die niemand mehr vollständig dokumentiert hat. Das Risiko wächst, wenn die eingesetzte PHP- oder Framework-Version keine Sicherheitsupdates mehr erhält oder nur noch eine Person den Code versteht. Statt eines riskanten Komplett-Neubaus ist meist ein schrittweises Vorgehen günstiger: zuerst Tests für die wichtigsten Abläufe, dann Modernisierung in kleinen, überprüfbaren Schritten.

Hintergrund und Entstehung

Legacy-Code entsteht häufig in langjährigen Softwareprojekten, die über viele Jahre oder Jahrzehnte weiterentwickelt wurden. Ursprünglich geschriebener Code kann im Laufe der Zeit durch neue Anforderungen, Technologien und Entwicklerteams überholt sein. Die Weiterentwicklung ohne umfassende Refaktorisierung führt zur Akkumulation von Legacy-Code.

In vielen Unternehmen ist Legacy-Code ein Ergebnis von Investitionen in Systeme, die stabil laufen, aber nicht mehr den aktuellen Entwicklungsparadigmen entsprechen. Die Abhängigkeit von solchen Systemen entsteht oft durch hohe Kosten für eine vollständige Neuentwicklung oder durch kritische Geschäftsprozesse, die auf dem alten Code basieren.

Eigenschaften und Herausforderungen

Legacy-Code zeichnet sich durch mangelnde Modularität, fehlende oder veraltete Dokumentation und teilweise durch nicht mehr unterstützte Technologien aus. Die Testabdeckung ist häufig gering, was das Risiko von Fehlern bei Änderungen erhöht. Zudem kann die Komplexität des Codes das Verständnis für neue Entwickler erschweren.

Die Wartung von Legacy-Code erfordert oft spezielle Kenntnisse der ursprünglichen Programmiersprache oder Architektur. Änderungen sind risikobehaftet, da unerwartete Nebeneffekte auftreten können. Dies führt zu längeren Entwicklungszyklen und höheren Kosten bei der Pflege der Software.

Umgang und Modernisierung

Der Umgang mit Legacy-Code umfasst Strategien wie Refaktorisierung, schrittweise Migration oder vollständige Neuentwicklung. Refaktorisierung zielt darauf ab, den Code schrittweise zu verbessern, ohne seine Funktionalität zu verändern. Dies erhöht die Wartbarkeit und erleichtert spätere Erweiterungen.

Alternativ kann eine schrittweise Migration auf moderne Technologien erfolgen, wobei Teile des Legacy-Codes durch neue Komponenten ersetzt werden. In manchen Fällen ist eine komplette Neuentwicklung wirtschaftlicher, insbesondere wenn der Legacy-Code stark veraltet oder fehleranfällig ist.

Abgrenzung zu verwandten Begriffen

Legacy-Code ist nicht gleichbedeutend mit schlechtem oder fehlerhaftem Code, sondern bezieht sich auf die historische Herkunft und die damit verbundenen Herausforderungen. Im Gegensatz dazu steht moderner Code, der aktuellen Entwicklungsstandards und Best Practices folgt.

Ein verwandter Begriff ist technischer Schuldenstand (Technical Debt), der die kumulierten Kompromisse und Mängel im Code beschreibt, die zukünftige Arbeiten erschweren. Legacy-Code kann technologische Schulden enthalten, muss dies aber nicht zwangsläufig.