Manchmal ist es schon kurios. Beim Design von Software achtet man auf schöne Strukturen, sauberen Quellcode und irgendwann kommt der Zahn der Zeit. Üblicherweise in Gestalt eines Kunden oder Benutzers der unbedingt dieses oder jenes Feature haben möchte. Die schönen Strukturen werden etwas aufgeweicht, der Quellcode bekommt ein paar Entscheidungsbäume mehr und alle sind erstmal zufrieden. Natürlich nimmt man sich vor das alles im nächsten Release besser zu machen aber sind wir mal ehrlich, wer macht das wirklich, bzw. wer hat die Zeit dafür.
Und das ganze kommt oft noch schlimmer, nach ein paar Monaten wird die Funktion gar nicht mehr gebraucht. Eine neue Implementierung wird hinzugefügt und das Design wird weiter aufgeweicht, denn den unbenutzen Code tastet man inzwischen nicht mehr an, weil man nicht mehr weiß wer ihn noch braucht oder man meint ihn nochmal brauchen zu können.
Ich für meinen Teil habe in letzter Zeit an mehrfach festgestellt wie befreiend es sein kann alten Ballast über Board zu werfen. Und solches Refaktoring macht sogar noch Spaß, denn am Ende sieht man wieder ein wenig Licht. Die Strukturen die man sich einstmals erdacht hat schimmern wieder durch das Gewirr von Anpassungen hindurch und plötzlich wird einem wieder klar wie schön Software doch eigentlich sein kann.
So habe ich im Backend meines CMS immer daran festgehalten Texte mittels BB-Code zu formatieren und war auch irgendwie der Meinung das ein Umbau nicht lohnt und wahnsinnig aufwendig sei. Inzwischen habe ich das System umgebaut, die Daten migriert und alles was mit BB-Code zu tun hat weitestgehend entfernt. Und siehe da das System ist ein wenig schneller geworden, der Code etwas lesbarer und ich kann sogar ohne Probleme einen WYSIWYG Editor im Backend verwenden, einfach nur indem ich eine Altlast beseitigt habe.
Um den Pragmatic Programmer zu zitieren: “Don’t live with Broken Windows”, wenn der Code hässlich oder ineffizient wird dann tu etwas dagegen. Die Zeit verzeiht keine Fehler und wenn man etwas nicht mehr braucht sollte man den Mut haben es zu entfernen, genauso wie man eine fehlerhafte Lösung korrigieren sollte wenn man sie entdeckt.