Industry's Cry for Tools That Support Large-Scale Refactoring
April 2022 • Conference Paper
James Ivers, Robert Nord, Ipek Ozkaya, Chris Seifried, Christopher S. Timperley (Carnegie Mellon University), Marouane Kessentini (Oakland University)
This paper introduces an industry survey that assessed which tools developers use in large-scale refactoring efforts and how well those tools support refactoring.
Software refactoring plays an important role in software engineering. Developers often turn to refactoring when they want to restructure software to improve its quality without changing its external behavior. Compared to small-scale (floss) refactoring, many refactoring efforts are much larger, requiring entire teams and months of effort, and the role of tools in these efforts is not as well studied. This short paper introduces an industry survey that the SEI conducted. Results from 107 developers demonstrate that projects commonly go through multiple large-scale refactorings, each of which requires considerable effort. While there is often a desire to refactor, other business concerns such as developing new features often take higher priority. This study finds that developers use several categories of tools to support large-scale refactoring and rely more heavily on general-purpose tools like integrated development environments than on tools designed specifically to support refactoring. Tool support varies across the different activities (spanning communication, reasoning, and technical activities), with some particularly challenging activities seeing little use of tools in practice. This study demonstrates a clear need for better large-scale refactoring tools.