Ik zal dan niet snel code van een ander herschrijven en ook eigen code die werkt niet verbeteren - dat kost namelijk tijd en als het werkt is het goed genoeg.
En JUIST als bedrijf moet je dat niet te veel doen. Een profesioneel zal een gedeelte van haar tijd inruimen om zo nu en dan wel code te gaan herschrijven alleen om helderheid, modulariteit, etc te verbeteren. Zou zij dat niet doen, dan zal het project naar verloop van tijd een steeds grotere spaghetti brei worden. (toekomstige) collega's van haar zullen dan steeds meer en meer moeite hebben om dingen toe te voegen, te wijzigen of te hergebruiken.
Ik zit momenteel op een project waarvan de programmeurs ook nooit het nut inzagen van code herschrijven zonder dat dit de functionaliteit veranderde. Precies jou gedachte gang dus: "Als het werkt, dan werkt het, maakt niet uit hoe ranzig de code eruit ziet".
Nu na een aantal jaren(!) begint zich dat zich enorm te wreken. Er kon bijna niets meer toegevoegd of veranderd worden. Door de onduidelijkheid van de code heb je tig versies van dezelfde functionaliteit dubbel in de code, gewoon omdat het te lastig is om bestaande code te hergebruiken.
Simpel voorbeeld: functies die meer doen dan ze moeten doen zoals het setten van een key en deze dan meteen naar kleine letters zetten omdat dat in een bepaalde context handig was. Als je dan in een andere context zit waar je juist hoofdletters moet hebben kun je die functie niet gebruiken. Je kunt hem zo zonder meer ook niet veranderen omdat er nog code is die juist verwacht dat de key automatisch kleine letters wordt. Dus wordt de key setting functie maar nogmaals geschreven in een andere versie. Vermenigvuldig zulke toestanden met 1000, en je hebt aardig rottige code.
Wat men al vanaf het begin had moeten doen is alle clients van bovengenoemde functie opsporen en herschrijven in 2 stukken: kleine letters maken, en dan het resultaat aan de key setting doorgeven.
Dergelijke simpele refactorings veranderen nix aan de uiterlijke functionaliteit en zou dus volgens Little Penguin
nooit gedaan mogen worden voor produktie code.
Als je refactoring regelmatig doet blijft je code clean. Blijf je het uit stellen (de klant ziet het toch niet), dan is het op een gegeven moment te laat en mag je je hele systeem overnieuw gaan schrijven.