An Empirical Study of RefactoringChallenges and Benefits at Microsoft
Abstract
Abstract—It is widely believed that refactoring improves software quality and developer productivity. However, few empirical studies quantitatively assess refactoring benefits or investigate developers ’ perception towards these benefits. This paper presents a field study of refactoring benefits and challenges at Microsoft through three complementary study methods: a survey, semi-structured interviews with professional software engineers, and quantitative analysis of version history data. Our survey finds that the refactoring definition in practice is not confined to a rigorous definition of semantics-preserving code transformations and that developers perceive that refactoring involves substantial cost and risks. We also report on interviews with a designated refactoring team that has led a multi-year, centralized effort on refactoring Windows. The quantitative analysis of Windows 7 version history finds the top 5 % of preferentially refactored modules experience higher reduction in the number of inter-module dependencies and several complexity measures but increase size more than the bottom 95%. This indicates that measuring the impact of refactoring requires multi-dimensional assessment. Index Terms—Refactoring; empirical study; software evolution; component dependencies; defects; churn. F 1
Integrity signals
Registry
Cites
Statistics
Claims the paper makes
Claims other papers make about this one
Each is checked against this paper’s own text: does it say what the citing paper says it does?
Inadequate tool support for impact analysis of architectural changes.
“Inadequate tool support for impact analysis of architectural changes ( cogs ).”
From Software Architecture in Practice: Challenges and Opportunities (2023) · cites this paper as [45]
Cites
Use, disuse, and misuse of automated refactorings
Vakilian, M., Chen, N., Negara, S., Rajkumar, B. A., Bailey, B. P., & Johnson, R. E. (2012) · 2012 34th International Conference on Software Engineering (ICSE) · doi:10.1109/icse.2012.6227190 · Cited by 106 · see citing works
Flagged first, then by citations
Cited by
Sorted by citations
Software Architecture in Practice: Challenges and Opportunities
Wan, Z., Zhang, Y., Xia, X., Jiang, Y., & Lo, D. (2023) · Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering · doi:10.1145/3611643.3616367 · Cited by 30 · see citing works
Industry experiences with large-scale refactoring
Ivers, J., Nord, R. L., Ozkaya, I., Seifried, C., Timperley, C. S., & Kessentini, M. (2022) · Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering · doi:10.1145/3540250.3558954 · Cited by 19 · see citing works
- Authors
- Kim, M., Zimmermann, T., & Nagappan, N.
- Venue
- IEEE Transactions on Software Engineering
- Published
- 2014-07-01
- Volume
- 40
- Issue
- 7
- Pages
- 633-649
- ISSN
- 0098-5589 (ISSN-L)
- 1939-3520
- 2326-3881
- OpenAlex
- W2159725273
- Cited by
- 231
- References
- 1
- Citations by year
- 2026: 8 · 2025: 21 · 2024: 20 · 2023: 21 · 2022: 21 · 2021: 24 · 2020: 36 · 2019: 25 · 2018: 16 · 2017: 15 · 2016: 13 · 2015: 9 · 2014: 2
- FWCI
- 36.02
- Type
- journal article
- Language
- en
- Open access
- closed
- Locations
- IEEE Transactions on Software Engineering (publishedVersion)
- Funders
- National Science Foundation (CCF-1149391, CCF-1117902, CCF-1043810)
- Microsoft SEIF
- Topics
- Physical Sciences › Computer Science › Information Systems › Software Engineering Research
- Physical Sciences › Computer Science › Information Systems › Software Engineering Techniques and Practices
- Physical Sciences › Computer Science › Artificial Intelligence › Advanced Software Engineering Methodologies
- Keywords
- refactoring, developer perceptions, software complexity, software evolution, Windows 7, defect reduction, customer churn, program size
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review