TY - JOUR
T1 - Behind the scenes
T2 - On the relationship between developer experience and refactoring
AU - Alomar, Eman Abdullah
AU - Peruma, Anthony
AU - Mkaouer, Mohamed Wiem
AU - Newman, Christian D.
AU - Ouni, Ali
N1 - Publisher Copyright:
© 2021 John Wiley & Sons, Ltd.
PY - 2024/1
Y1 - 2024/1
N2 - Refactoring is widely recognized as one of the efficient techniques to manage technical debt and maintain a healthy software project through enforcing best design practices, or coping with design defects. Previous refactoring surveys have shown that code refactoring activities are mainly executed by developers who have sufficient knowledge of the system's design, and disposing of leadership roles in their development teams. However, these surveys were mainly limited to specific projects and companies. In this paper, we explore the generalizability of the previous results by analyzing 800 open-source projects. We mine their refactoring activities, and we identify their corresponding contributors. Then, we associate an experience score to each contributor in order to test various hypotheses related to whether developers with higher scores tend to (1) perform a higher number of refactoring operations, (2) exhibit different motivations behind their refactoring, and (3) better document their refactoring activity. We found that (1) although refactoring is not restricted to a subset of developers, those with higher contribution scores tend to perform more refactorings than others; (2) although there is no correlation between experience and motivation behind refactoring, top contributed developers are found to perform a wider variety of refactoring operations, regardless of their complexity; and (3) top contributed developer tend to document less their refactoring activity. Our qualitative analysis of three randomly sampled projects shows that the developers who are responsible for the majority of refactoring activities are typically in advanced positions in their development teams, demonstrating their extensive knowledge of the design of the systems they contribute to.
AB - Refactoring is widely recognized as one of the efficient techniques to manage technical debt and maintain a healthy software project through enforcing best design practices, or coping with design defects. Previous refactoring surveys have shown that code refactoring activities are mainly executed by developers who have sufficient knowledge of the system's design, and disposing of leadership roles in their development teams. However, these surveys were mainly limited to specific projects and companies. In this paper, we explore the generalizability of the previous results by analyzing 800 open-source projects. We mine their refactoring activities, and we identify their corresponding contributors. Then, we associate an experience score to each contributor in order to test various hypotheses related to whether developers with higher scores tend to (1) perform a higher number of refactoring operations, (2) exhibit different motivations behind their refactoring, and (3) better document their refactoring activity. We found that (1) although refactoring is not restricted to a subset of developers, those with higher contribution scores tend to perform more refactorings than others; (2) although there is no correlation between experience and motivation behind refactoring, top contributed developers are found to perform a wider variety of refactoring operations, regardless of their complexity; and (3) top contributed developer tend to document less their refactoring activity. Our qualitative analysis of three randomly sampled projects shows that the developers who are responsible for the majority of refactoring activities are typically in advanced positions in their development teams, demonstrating their extensive knowledge of the design of the systems they contribute to.
KW - developer experience
KW - mining software repositories
KW - quality
KW - software maintenance and evolution
KW - software refactoring
UR - http://www.scopus.com/inward/record.url?scp=85118239166&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85118239166&partnerID=8YFLogxK
U2 - 10.1002/smr.2395
DO - 10.1002/smr.2395
M3 - Article
AN - SCOPUS:85118239166
SN - 1532-060X
VL - 36
JO - Journal of Software: Evolution and Process
JF - Journal of Software: Evolution and Process
IS - 1
M1 - e2395
ER -