TY - GEN
T1 - On the Relationship between Developer Experience and Refactoring
T2 - 42nd IEEE/ACM International Conference on Software Engineering Workshops, ICSEW 2020
AU - Alomar, Eman Abdullah
AU - Peruma, Anthony
AU - Newman, Christian D.
AU - Mkaouer, Mohamed Wiem
AU - Ouni, Ali
N1 - Publisher Copyright:
© 2020 ACM.
PY - 2020/6/27
Y1 - 2020/6/27
N2 - Refactoring is one of the means of managing technical debt and maintaining a healthy software structure through enforcing best design practices, or coping with design defects. Previous refactoring surveys have shown that these code restructurings 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 though analyzing 800 open-source projects. We mine their refactoring activities, and we identify their corresponding contributors. Then, we associate an expertise score to each contributor in order to test the hypothesis of whether developers with higher scores tend to perform a higher number of refactoring operations. We found that (1) although refactoring is not restricted to a subset of developers, those with higher experiences score tend to perform more refactorings than others; (2) our qualitative analysis of three randomly sampled projects show that the developers who are responsible for the majority of refactoring activities are typically on advanced positions in their development teams, demonstrating their extensive knowledge of the design of the systems they contribute to.
AB - Refactoring is one of the means of managing technical debt and maintaining a healthy software structure through enforcing best design practices, or coping with design defects. Previous refactoring surveys have shown that these code restructurings 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 though analyzing 800 open-source projects. We mine their refactoring activities, and we identify their corresponding contributors. Then, we associate an expertise score to each contributor in order to test the hypothesis of whether developers with higher scores tend to perform a higher number of refactoring operations. We found that (1) although refactoring is not restricted to a subset of developers, those with higher experiences score tend to perform more refactorings than others; (2) our qualitative analysis of three randomly sampled projects show that the developers who are responsible for the majority of refactoring activities are typically on advanced positions in their development teams, demonstrating their extensive knowledge of the design of the systems they contribute to.
KW - Developer Experience
KW - Quality
KW - Software Refactoring
KW - Software maintenance and evolution
UR - http://www.scopus.com/inward/record.url?scp=85093084192&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85093084192&partnerID=8YFLogxK
U2 - 10.1145/3387940.3392193
DO - 10.1145/3387940.3392193
M3 - Conference contribution
AN - SCOPUS:85093084192
T3 - Proceedings - 2020 IEEE/ACM 42nd International Conference on Software Engineering Workshops, ICSEW 2020
SP - 342
EP - 349
BT - Proceedings - 2020 IEEE/ACM 42nd International Conference on Software Engineering Workshops, ICSEW 2020
Y2 - 27 June 2020 through 19 July 2020
ER -