Refactoring tools automate tedious and error-prone source code changes. Such tools can improve the speed and accuracy of software development, yet developers frequently eschew automation in favor of manual refactoring. The prevalence and difficulty of refactorings in software development indicate that automated tools have a high potential for impact. Developers report distrust and unpredictable tools as motivations for disuse, but there are no comprehensive explanations of the terms, nor guidelines for how to improve tools. My hypothesis is that developers will find refactoring tools more useful the automation aligns with how they plan and execute manual code changes. Through a lab study of refactoring disuse in software evolution tasks, I use observations and interview data to ground ambiguous reasons for disuse in code changes. With background in these findings, I attempt to decompose refactorings like Inline Method and Move Method into operations that are more aligned with developers’ workflow and evaluate the result by manually replicating mined refactorings, and repeating the user study using my prototype implementation.
PhD Student at University of Bergen, on Language/Artefact Co-Evolution project. I tweet as @annam_ei at conferences.