Refactoring Practices in the Context of Modern Code Review: An Industrial Case Study at Xerox

by   Eman Abdullah AlOmar, et al.

Modern code review is a common and essential practice employed in both industrial and open-source projects to improve software quality, share knowledge, and ensure conformance with coding standards. During code review, developers may inspect and discuss various changes including refactoring activities before merging code changes in the codebase. To date, code review has been extensively studied to explore its general challenges, best practices and outcomes, and socio-technical aspects. However, little is known about how refactoring activities are being reviewed, perceived, and practiced. This study aims to reveal insights into how reviewers develop a decision about accepting or rejecting a submitted refactoring request, and what makes such review challenging. We present an industrial case study with 24 professional developers at Xerox. Particularly, we study the motivations, documentation practices, challenges, verification, and implications of refactoring activities during code review. Our study delivers several important findings. Our results report the lack of a proper procedure to follow by developers when documenting their refactorings for review. Our survey with reviewers has also revealed several difficulties related to understanding the refactoring intent and implications on the functional and non-functional aspects of the software. In light of our findings, we recommended a procedure to properly document refactoring activities, as part of our survey feedback.


Code Review Practices for Refactoring Changes: An Empirical Study on OpenStack

Modern code review is a widely used technique employed in both industria...

State of Refactoring Adoption: Better Understanding Developer Perception of Refactoring

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

How Can We Develop Explainable Systems? Insights from a Literature Review and an Interview Study

Quality aspects such as ethics, fairness, and transparency have been pro...

Understanding Solidity Event Logging Practices in the Wild

Writing logging messages is a well-established conventional programming ...

To What Extent Cognitive-Driven Development Improves Code Readability?

Cognitive-Driven Development (CDD) is a coding design technique that aim...

Learning to Boost the Efficiency of Modern Code Review

Modern Code Review (MCR) is a standard in all kinds of organizations tha...

Underground Astronauts: Understanding the Sporting Science of Speleology and its Implications for HCI

In this paper, we present a qualitative study on speleology that aims to...

Please sign up or login with your details

Forgot password? Click here to reset