Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure.” — MartinFowler in RefactoringImprovingTheDesignOfExistingCode.

Refactoring automation is to S/W developers what spreadsheets are to financial planners…

In the past, when doing financial planning, you will do it on paper, and changing a variable/factor meant either re-writing or starting all again; and that took weeks. In the past, when doing code development, improving the code such as changing the name or signature of a function meant re-writing a lot, and that can take weeks (of coding and re-testing).

Spreadsheets removed the above pain and improved a whole industry; by just changing the value of a cell, the whole financial plan is automatically/instantly recalculated. Same with improving code quality; thanks to refactoring automation, just apply the refactoring technique using your favorite IDE, and all is instantly recalculated.

Refactoring automation, together with real-time errors highlighting (live parsing) probably are the two most important tools for code writers…

ceo