Arne Blankerts und Sebastian Heuer auf der IPC 2017

How to escape Legacy Hell
Kommentare

Arne Blankerts (thePHP.cc) und Sebastian Heuer (die kartenmacherei) nahmen die Teilnehmer ihrer Session mit in die allseits bekannte Legacy Hell: Keine Code-Ownership, Probleme mit der Implementierung neuen Codes, keine Dokumentation und dann soll was am Code getan werden. Aber wie? Immerhin sind Legacy-Systeme meist kompliziert zu pflegen. Wer weiß, welcher Bug eigentlich ein Feature ist:

Don’t forget to implement the bugs!

Die Speaker bezeichnen die Arbeit an derartigen Systemen als Code Archäologie. Interessant aus einer wissenschaftlichen Perspektive; in der Praxis aber wenig hilfreich. Der Versuch, das gesamte Legacy-System zu fixen erweist sich oft als wenig praktikabel: Estimations sind schwer zu treffen und selbst wenn man sich traut, den Zeitaufwand zu schätzen, geht es meist um Jahre. In der Zeit können allerdings keine neuen Features geschrieben werden. Das ist also keine gute Lösung.

Arne Blankerts und Sebastian Heuer auf der IPC: 2017: Raus aus der Legacy Hell!

Es geht aber natürlich auch anders, wie man in der Session sah. Statt alles auf einmal zu überarbeiten, sollte man in kleinen Schritten vorgehen und neue Lösungen schaffen. Die Speaker sprachen dabei aus eigener Erfahrung und erklärten, wie sie einen Webshop von einem alten Legacy-System in eine neue Anwendung überführt haben. Los ging es dabei mit einem kleinen Schritt: Fängt man mit einem neuen Frontend an, kann das erst einmal ja noch auf das Legacy-System zugreifen.

Work on the Leaves, not on the Trunk!

Man muss nämlich erstmal die Auswirkungen verstehen, bevor man größere Veränderungen an einem System vornimmt; sonst richtet man am Ende noch mehr Schaden an. Darum schlugen die Speaker vor, sich quasi von Außen nach Innen vorzuarbeiten. Das Legacy-System wird dabei nicht überarbeitet, sondern ersetzt. Die Legacy-Hölle kann überwunden werden!

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -