  Background: 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. Aims: 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.
