Perspectives on Refactoring Planning and Practice: an Empirical Study

Jie Chen,Junchao Xiao,Qing Wang,Leon J. Osterweil,Mingshu Li
DOI: https://doi.org/10.1007/s10664-015-9390-8
IF: 3.762
2015-01-01
Empirical Software Engineering
Abstract:Iterative development increasingly seeks to incorporate design modification and continuous refactoring in order to maintain code quality even in highly dynamic environments. However, there does not appear to be consensus on how to do this, especially because research results seem to be inconsistent. This paper presents an empirical study based upon an industry survey of refactoring practices and attitudes. The study explored differences in attitudes about refactoring among participants who played roles in software development, and how these different attitudes affected actual practice. The study found strong agreement among all roles about the importance of refactoring, and agreement about the negative effects upon agility of deferring refactoring. Nevertheless, the survey found that roles had different perspectives on the different kinds of tasks in an agile process. Accordingly, there was no universally agreed-upon strategy for how to plan to carry out refactoring. Analysis of the survey results has raised many interesting questions suggesting the need for a considerable amount of future research.
What problem does this paper attempt to address?