Legacy-Code: Refactor oder gleich neu schreiben?

Happy1987

Mitglied
Beiträge
14
Lösungen
1
Likes
40
Punkte
13
Fachgebiete
PHP, Laravel, Shopify
Hi Leute,

ich sitz hier gerade mal wieder vor einem Haufen alten PHP-Code, der schon seit Jahren im Einsatz ist. Ihr kennt das sicher - das Ding funktioniert irgendwie, aber man traut sich kaum, was anzufassen. Technical Debt ohne Ende...

Jetzt frag ich mich: Macht es Sinn, den Kram Stück für Stück zu refactoren oder sollte man gleich die Reißleine ziehen und alles neu schreiben? Habt ihr da Erfahrungen, was sich in der Praxis besser bewährt?

Ich hab schon beides gemacht und ehrlich gesagt, manchmal enden Refactoring-Versuche in einem Chaos, weil man an jeder Ecke was findet, das man fixen müsste. Aber komplett neu schreiben ist halt auch ein Haufen Zeit, die keiner zahlen will.

Was meint ihr? Wie geht ihr das an? Gibt's da so eine Daumenregel oder ist es einfach ein Bauchgefühl-Ding?

Cheers,
Happy1987
 
Beste Antwort
Hallo,

das ist im Arbeitsumfeld leider ein klassisches Dilemma.

Die Antwort ist, wie gewöhnlich bei solchen Fragen: Es kommt drauf an. Natürlich ist die Verlockung groß, einfach alles neu zu schreiben und wenn man ehrlich ist, ist das auch eigentlich die sicherste Lösung. Aber in der Realität gibt es Budget-Grenzen, Zeitdruck, vorhandene Abhängigkeiten etc. die das leider nicht immer möglich machen.

Kleinere Software kann man oft schneller neu entwickeln, als sie zu überarbeiten. Man muss ja auch oft bedenken, dass man sich in den alten Code auch erst einarbeiten muss. Das fällt bei Neuentwicklung oft weg, bzw. muss man sich nur einen groben Überblick verschaffen.

Bei größeren Projekten ist das natürlich oft nicht so einfach und oft...
Kenne ich. Altes Zeug refactoren kann echt frustrierend sein, weil man an jeder Ecke neue Probleme entdeckt. Komplett neu schreiben ist aber auch nicht immer die Lösung, vor allem wenn das Budget knapp ist. Ich schau mir oft an, wie kritisch der Code ist und wie viel Zeit ich wirklich hab. Manchmal bietet sich auch ein Hybrid an: Die wichtigsten Teile neu schreiben und den Rest Schritt für Schritt verbessern. Keine perfekte Antwort, aber es hängt echt vom Kontext ab.
 
Hallo,

das ist im Arbeitsumfeld leider ein klassisches Dilemma.

Die Antwort ist, wie gewöhnlich bei solchen Fragen: Es kommt drauf an. Natürlich ist die Verlockung groß, einfach alles neu zu schreiben und wenn man ehrlich ist, ist das auch eigentlich die sicherste Lösung. Aber in der Realität gibt es Budget-Grenzen, Zeitdruck, vorhandene Abhängigkeiten etc. die das leider nicht immer möglich machen.

Kleinere Software kann man oft schneller neu entwickeln, als sie zu überarbeiten. Man muss ja auch oft bedenken, dass man sich in den alten Code auch erst einarbeiten muss. Das fällt bei Neuentwicklung oft weg, bzw. muss man sich nur einen groben Überblick verschaffen.

Bei größeren Projekten ist das natürlich oft nicht so einfach und oft hat man auch noch Zeitdruck. Da bleibt oft nur notdürftig flicken, was unbedingt geflickt werden muss. Wenn es aber kritisch ist oder die Zeit vorhanden ist, dann kann man hier auch oft einen Mittelweg finden: Einzelteile bereits neu, aber abwärtskompatibel schreiben und den neuen Bauteil in der alten Anwendung einkleben und den Rest erstmal nur soweit wie nötig anpassen.

Ums neu entwickeln kommt man aber definitiv nicht herum, wenn das System massive Sicherheitsprobleme hat oder die Architektur ganz klar ungeeignet für zukünftige Anforderungen ist, die man jetzt schon klar benennen kann.

Die richtige Entscheidung muss man oft auch einfach unter wirtschaftlichen Gesichtspunkten treffen.
 
Zurück
Oben