What Were You Thinking? An LLM-Driven Large-Scale Study of Refactoring Motivations in Open-Source Projects
By: Mikel Robredo , Matteo Esposito , Fabio Palomba and more
Potential Business Impact:
Helps programmers fix code faster and better.
Context. Code refactoring improves software quality without changing external behavior. Despite its advantages, its benefits are hindered by the considerable cost of time, resources, and continuous effort it demands. Aim. Understanding why developers refactor, and which metrics capture these motivations, may support wider and more effective use of refactoring in practice. Method. We performed a large-scale empirical study to analyze developers refactoring activity, leveraging Large Language Models (LLMs) to identify underlying motivations from version control data, comparing our findings with previous motivations reported in the literature. Results. LLMs matched human judgment in 80% of cases, but aligned with literature-based motivations in only 47%. They enriched 22% of motivations with more detailed rationale, often highlighting readability, clarity, and structural improvements. Most motivations were pragmatic, focused on simplification and maintainability. While metrics related to developer experience and code readability ranked highest, their correlation with motivation categories was weak. Conclusions. We conclude that LLMs effectively capture surface-level motivations but struggle with architectural reasoning. Their value lies in providing localized explanations, which, when combined with software metrics, can form hybrid approaches. Such integration offers a promising path toward prioritizing refactoring more systematically and balancing short-term improvements with long-term architectural goals.
Similar Papers
Teaching Code Refactoring Using LLMs
Software Engineering
Helps students learn to fix computer code better.
Refactoring with LLMs: Bridging Human Expertise and Machine Understanding
Software Engineering
Helps computers fix messy code automatically.
Code Refactoring with LLM: A Comprehensive Evaluation With Few-Shot Settings
Software Engineering
Makes computer code cleaner and easier to fix.