Making Refactoring Tools Part of the Programming Workflow

Emerson R. Murphy-Hill, Andrew P. Black · 2008

To adapt software to changing requirements, many authors have advocated interspersing code modifications with refactorings to “keep the code clean”. Thus, it is important that refactoring tools are fast, correct, and integrate well with programmers ’ primary workflow. We present data that suggest that programmers underuse refactoring tools and instead refactor by hand; this is a problem because manual refactoring is slow and error-prone. Our data show that programmers underuse refactoring tools because the tools have poor usability: instead of fitting into programmers ’ workflow, the tools get in the programmers ’ way. We propose guidelines for improving the usability of refactoring tools, and then apply these guidelines to the design of two independent user interfaces for tool activation — interfaces that are designed to make the tool part of the programming workflow. A controlled experiment, an analytic comparison of task models, and interviews with experienced programmers combine to suggest that our new interfaces are faster, less error-prone, and more memorable than existing interfaces. We expect that the application of our guidelines to other refactoring tools will improve programmer productivity by helping programmers to focus on the refactoring that they want to accomplish, rather than on the tool that they might use to accomplish it.

Read the paper · More papers on PaperTik