An interesting talk by Jeffery Carver at the US-RSE 2023 conference this week was “Peer Code Review in Research Software: Enhancing Quality and Collaboration” where he discussed the findings from his study published as “Developers perception of peer code review in research software development”, where they found that team building and knowledge sharing are some of the most positive outcomes of peer code review, often ranking higher than improvements in quality of the code itself.
In my opinion this is also what we experienced a few months ago when we had MUSES module teams peer review each other’s work.
Context
Research software is software developed by and/or used by researchers, across a wide variety of domains, to perform their research. Because of the complexity of research software, developers cannot conduct exhaustive testing. As a result, researchers have lower confidence in the correctness of the output of the software. Peer code review, a standard software engineering practice, has helped address this problem in other types of software.
Objective
Peer code review is less prevalent in research software than it is in other types of software. In addition, the literature does not contain any studies about the use of peer code review in research software. Therefore, through analyzing developers perceptions, the goal of this work is to understand the current practice of peer code review in the development of research software, identify challenges and barriers associated with peer code review in research software, and present approaches to improve the peer code review in research software.
Method
We conducted interviews and a community survey of research software developers to collect information about their current peer code review practices, difficulties they face, and how they address those difficulties.
Results
We received 84 unique responses from the interviews and surveys. The results show that while research software teams review a large amount of their code, they lack formal process, proper organization, and adequate people to perform the reviews.
Conclusions
Use of peer code review is promising for improving the quality of research software and thereby improving the trustworthiness of the underlying research results. In addition, by using peer code review, research software developers produce more readable and understandable code, which will be easier to maintain.