6 points
This, to a point.
Other things help :
- Unit test to help catch regressions. If you are confident in your test catching a good portion of bugs from refactoring, at least you feel confident refactoring. Worst case, at least you ensured your code is testable. There is nothing worse than refactoring untestable code.
- Self-documenting code and when it fails to self-document, comments or refer to a wiki page.