Refactoring or gaining insight?
Most developers have a natural resistance to appreciate someone else's code. This is especially true when developers have to maintain that code. I think we use refactoring partly to understand the code structure and it's intentions. By making small changes, adding tests, debugging, you learn to deal with the black box. Since you don't want to waste time, you enhance the code.
The big question I have: is the enhancement an improvement to your colleague? The funny thing is that after a couple of months, you most likely want to refactor your own code as well. So are we refactoring to improve the software or to understand the software?
Of course I'm not questioning the value of SOLID principles, test driven development, etc. But the only way to understand code is to change it, right?