Recovering when refactoring goes wrong
Sometimes, despite your best efforts, refactoring efforts will fail. It may be due to gaps in your tests or mistaken assumptions about new technologies, but a certain percentage of your refactoring attempts will fail.
The impact of failed refactorings
Failed refactorings can be both frustrating and a serious challenge to future refactoring work. After all, a significant barrier to refactoring is the belief that legacy code is so brittle that touching it will break it. When you change code and it breaks, you make it harder to change code in the future.
When refactoring fails, you sometimes get to make a quick patch to address the issue you introduced. In this case, the code is refactored and service gets restored, but you’ve lost some of the team’s trust.
Other times, failures in refactoring result in code getting rolled back to the previous version before you refactored it. Sometimes, you’ll get to make changes...