Refactoring tools are fantastic. I am an IDEA fan, and I think their refactoring support is second to none.
However, as great as it all seems, I think that refactoring tools can be overrated compared to other important factors.
For example, I was watching someone on a typical Java project with a particular stack, and watching their deploy cycle was making me cringe.
Sure they tried to do a lot out of the container, blah blah, but at some point they had to keep testing in the browser, which meant rebuilds of their project, and tomcat doing reloads for non-trivial changes.
The project was a medium size, and the cycle was painful to watch.
As I was watching this happen for a period of days, I compared to another current project where I would make changes and hit reload in the browser to see test.
I am saving time consistently, on a minute by minute basis.
On the other hand, it is quite infrequent for me to sit there and wish that I had “insert name of fancy refactoring”. When this happens it can be a pain, that is for sure. I hope that tools get better and better for non Java/static languages.
However, the more I thought about the comparison, the more I realised the the theoretical in me “man i love those refactorings. I just need them!” was dwarfed by the pragmatic reality of “man it is so painful to work in that stack, having these slowdowns CONSTANTLY”.