Bracing for down votes but I think that’s garbage. Once the system has been precisely defined in code (even poorly, especially when poorly!), refactoring it is a much smaller task, it’s also a ‘smooth’ problem (there are no hidden problem mountains that sap your drive as you discover your expectations were way off week after week) because the problem is all there in front of you, in ascii. You are also motivated to look good because people do mis-compare these non-comparable tasks. I’ve refactored my own code, I’ve refactored others’ code, I’ve had my own code refactored. Every refactoring iteration is almost always a lot faster than the last, and there is almost always a benefit in performance, though maybe only iteration #2 provides a really big boost when #1 was a rush job. You just need to be a good engineer who knows how to write well organized, well patterned, and performant code. It’s important to remember that engineering, like design in general, is an activity done under time constraint, every iteration is an opportunity for more time, and it’s also a fresh break/perspective on the problem. I love refactoring code.