Допустим, вы написали некий кусок кода. Достаточно сложный. По пути вам пришлось решить некую проблему, например, у вашего сервера слишком быстро заканчивались файловые дескрипторы или еще что-то. Вы эту проблему как-то по-своему решили, и знаете, что оно продержится до некоего граничного случая, и случай этот вполне возможен, хотя и при достаточно редких обстоятельствах. Кроме того, тот код, хотя и работает, но достаточно страшен.
Ну да ладно. Вы о том коде уже забыли, работаете над другим куском кода в том же проекте. И тут во время гугления чего-то там для себя по этому куску или просто «отдыха с самообразованием», находите элегантное и правильное с самого начала решение той, еще давнишней, проблемы. Но все равно ваш код выдирать, а новый впаивать — немного поработать и поотладить придется, полдня так точно.
Что будете делать?
Бросите текущую задачу и будете ремонтировать старый код, который еще и не сломался пока что? А что, если это время потрачено даром?
Или забьете на потом, с риском, что когда ударит гром, у вас на тестирование так много времени не будет, как сейчас, да и вы позабудете, где начало-конец вашего костыля? А так бы поремонтировали сразу, ничего бы и не было...
Или оставите какую-то закладку на решение и на свой код в месте костыля, чтобы к нему вернуться при ближайшем намеке на свободное от других задач время? Как разруливаете ситуацию с тем, что эти закладки имеют неизбежное свойство накапливаться?