Why We Refactor? Confessions of GitHub Contributors
Not on the map. Why?
Abstract (arXiv)
Refactoring is a widespread practice that helps developers to improve the maintainability and readability of their code. However, there is a limited number of studies empirically investigating the actual motivations behind specific refactoring operations applied by developers. To fill this gap, we monitored Java projects hosted on GitHub to detect recently applied refactorings, and asked the developers to ex- plain the reasons behind their decision to refactor the code. By applying thematic analysis on the collected responses, we compiled a catalogue of 44 distinct motivations for 12 well-known refactoring types. We found that refactoring activity is mainly driven by changes in the requirements and much less by code smells. Extract Method is the most versatile refactoring operation serving 11 different purposes. Finally, we found evidence that the IDE used by the developers affects the adoption of automated refactoring tools.
Key facts. Cited by 10 papers in the map (data through 7 Oct 2026). First posted on arXiv 8 Jul 2016.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2023: 1; 2024: 1; 2025: 7; 2026: 1.
10 papers.
- 2025Agentic Refactoring: An Empirical Study of AI Coding Agentscited by 17
- 2023ChatGPT: A Study on its Utility for Ubiquitous Software Engineering Taskscited by 12
- 2025MANTRA: Enhancing Automated Method-Level Refactoring with Contextual RAG and Multi-Agent LLM Collaborationcited by 10
- 2024EM-Assist: Safe Automated ExtractMethod Refactoring with LLMscited by 8
- 2025What Were You Thinking? An LLM-Driven Large-Scale Study of Refactoring Motivations in Open-Source Projectscited by 4
- 2025Novice Developers' Perspectives on Adopting LLMs for Software Development: A Systematic Literature Reviewcited by 3
- 2025Leveraging LLMs, IDEs, and Semantic Embeddings for Automated Move Method Refactoringcited by 1
- 2025SQuaD: The Software Quality Datasetcited by 1
- 2025Teaching Code Refactoring Using LLMscited by 0
- 2026Which Alert Removals are Beneficial?cited by 0
- 2026Which Alert Removals are Beneficial?22 Mar 2026
- 2025SQuaD: The Software Quality Dataset14 Nov 2025
- 2025Agentic Refactoring: An Empirical Study of AI Coding Agents6 Nov 2025
- 2025What Were You Thinking? An LLM-Driven Large-Scale Study of Refactoring Motivations in Open-Source Projects9 Sep 2025
- 2025Teaching Code Refactoring Using LLMs12 Aug 2025
- 2025Leveraging LLMs, IDEs, and Semantic Embeddings for Automated Move Method Refactoring26 Mar 2025
- 2025MANTRA: Enhancing Automated Method-Level Refactoring with Contextual RAG and Multi-Agent LLM Collaboration18 Mar 2025
- 2025Novice Developers' Perspectives on Adopting LLMs for Software Development: A Systematic Literature Review10 Mar 2025
- 2024EM-Assist: Safe Automated ExtractMethod Refactoring with LLMs31 May 2024
- 2023ChatGPT: A Study on its Utility for Ubiquitous Software Engineering Tasks26 May 2023