Как работать с легаси кодом? Т.е. как себя вести в ситуации, когда наткнулся на старый код и понимаешь, что его надо серьезно отрефакторить (не важно по какой причине - устарел, появились новые компетенции в команде и поняли, что так писать не стоит, новая фича только с костылями пролезет и т.п.)?

Варианты примерно такие (можно и нужно комбинировать):

  1. Закладывать в оценку таска время на рефакторинг. Это может быть явно прописано или учтено в рисках. Если рефакторинг мелкий, то этого времени обычно хватает.

  2. Сделать "чтобы работало", и добавить таск на рефакторинг в трекер задач. Будет время - выполним задачу. Обычно это связано с глобальным рефакторингом - то есть тяжелой задачей. Если реально без этого рефакторинга никак - то стоит еще раз подумать о приоритетах.

А вообще лучше придерживаться правила, что после работы с участком кода он должен стать лучше:) Все-таки над этим кодом потом работать тебе и твоему коллеге. И работать с техдолгом нужно - иначе код превратится в огромного страшного монстра, которого проще будет сжечь, чем исправить :)