I feel like refactoring never gets the attention it deserves in the development cycle. Many devs take the approach of let's do it quick and dirty now and let's ask for a month worth of refactoring later. But then when the time comes they don't really want to refactor, they want to rewrite the whole thing again, making the same mistakes. I feel that many people avoid refactoring because they don't want to spend the time and effort thinking of how to improve the code? Refactoring is hard, but I think it's fundamental for writing good code. I like it when Christian Clausen says "Clean code is not an option, refactoring is a requirement for being good at coding". Great podcast on refactoring: https://spamcast.libsyn.com/spamcast-623-five-lines-of-code-refactoring-a-conversation-with-christian-clausen