Industry Experiences with Large-Scale Refactoring
James Ivers, Robert L. Nord, Ipek Ozkaya, Chris Seifried, Christopher, S. Timperley, Marouane Kessentini

TL;DR
This study investigates large-scale refactoring in industry, revealing its prevalence, challenges, and the reliance on general-purpose tools, highlighting the need for improved refactoring support tools.
Contribution
It provides empirical insights into large-scale refactoring practices, tool usage, and challenges faced by industry developers, emphasizing the gap in specialized support tools.
Findings
Large-scale refactoring is common in industry projects.
Developers rely more on IDEs than specialized refactoring tools.
There is a significant need for better large-scale refactoring tools.
Abstract
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. Studies show that small-scale (floss) refactoring is common in industry and can often be performed by a single developer in short sessions, even though developers do much of this work manually instead of using refactoring tools. However, some refactoring efforts are much larger in scale, requiring entire teams and months of effort, and the role of tools in these efforts is not as well studied. In this paper, we report on a survey we conducted with developers to understand large-scale refactoring, its prevalence, and how tools support it. Our results from 107 industry developers demonstrate that projects commonly go through multiple large-scale refactorings, each of which requires…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Engineering Techniques and Practices · Software System Performance and Reliability
