Behind the Scenes: On the Relationship Between Developer Experience and Refactoring

09/23/2021
by   Eman Abdullah AlOmar, et al.
0

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) while 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.

READ FULL TEXT

page 1

page 14

page 16

page 17

page 21

page 22

research
08/22/2019

Unveiling Elite Developers' Activities in Open Source Projects

Open-source developers, particularly the elite developers, maintain a di...
research
07/28/2019

Characterizing and Understanding Software Developer Networks in Security Development

To build secure software, developers often work together during software...
research
10/05/2017

Unusual Events in GitHub Repositories

In large and active software projects, it becomes impractical for a deve...
research
03/13/2019

Activity-Based Analysis of Open Source Software Contributors: Roles and Dynamics

Contributors to open source software (OSS) communities assume diverse ro...
research
11/05/2018

On Relating Technical, Social Factors, and the Introduction of Bugs

As collaborative coding environments make it easier to contribute to sof...
research
10/12/2021

Does it matter who pays back Technical Debt? An empirical study of self-fixed TD

Context: Technical Debt (TD) can be paid back either by those that incur...
research
06/09/2023

State of Refactoring Adoption: Better Understanding Developer Perception of Refactoring

We aim to explore how developers document their refactoring activities d...

Please sign up or login with your details

Forgot password? Click here to reset