Ten simple rules for scientific code review

As large, high-dimensional data have become more common, software development is playing an increasingly important role in research across many different fields. This creates a need to adopt software engineering practices in research settings. Code review is the engineering practice of giving and receiving detailed feedback on a computer program. Consistent and continuous examination of the evolution of computer programs by others has been shown to be beneficial, especially when reviewers are familiar with the technical aspects of the software and also when they possess relevant domain expertise. The rules described in the present article provide information about the why, when, and how of code review. They provide the motivation for continual code reviews as a natural part of a rigorous research program. They provide practical guidelines for conducting review of code both in person, as a "lab meeting for code," as well as asynchronously, using industry-standard online tools. A set of guidelines is provided for the nitty-gritty details of code review, as well as for the etiquette of such a review. Both the technical and the social aspects of code review are covered to provide the reader with a comprehensive approach that facilitates an effective, enjoyable, and educational approach to code review.

Authors

Institutions

Publication Details

Journal
PLoS Computational Biology
Published
2024-09-05
DOI
https://doi.org/10.1371/journal.pcbi.1012375
Citations
7
Primary Topic
Scientific Computing and Data Management
Type
article
Field-Weighted Citation Impact
7.36

Funders

Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Ten simple rules for scientific code review

Ariel Rokem
7 citations
PLoS Computational Biology
Scientific Computing and Data Management
7.36
article

Ten simple rules for scientific code review

Ariel Rokem
article en
7 citations

Abstract

As large, high-dimensional data have become more common, software development is playing an increasingly important role in research across many different fields. This creates a need to adopt software engineering practices in research settings. Code review is the engineering practice of giving and receiving detailed feedback on a computer program. Consistent and continuous examination of the evolution of computer programs by others has been shown to be beneficial, especially when reviewers are familiar with the technical aspects of the software and also when they possess relevant domain expertise. The rules described in the present article provide information about the why, when, and how of code review. They provide the motivation for continual code reviews as a natural part of a rigorous research program. They provide practical guidelines for conducting review of code both in person, as a "lab meeting for code," as well as asynchronously, using industry-standard online tools. A set of guidelines is provided for the nitty-gritty details of code review, as well as for the etiquette of such a review. Both the technical and the social aspects of code review are covered to provide the reader with a comprehensive approach that facilitates an effective, enjoyable, and educational approach to code review.

PLoS Computational BiologyVol. 20(9)
University of Washington (US)
National Science Foundation, Alfred P. Sloan Foundation, Gordon and Betty Moore Foundation, Chan Zuckerberg Initiative, National Institutes of Health, National Institute of Mental Health, National Institute of Biomedical Imaging and Bioengineering
Industry, innovation and infrastructure
Openalex Percentile: Top 3%
Scientific Computing and Data Management
7.36
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.