Open source software peer review practices

Peer review is seen as an important quality assurance mechanism in both industrial development and the open source software (OSS) community. The techniques for performing inspections have been well studied in industry; in OSS development, peer reviews are less well understood. We examine the two peer review techniques used by the successful, mature Apache server project: review-then-commit and commit-then-review. Using archival records of email discussion and version control repositories, we construct a series of metrics that produces measures similar to those used in traditional inspection experiments. Specifically, we measure the frequency of review, the level of participation in reviews, the size of the artifact under review, the calendar time to perform a review, and the number of reviews that find defects. We provide a comparison of the two Apache review techniques as well as a comparison of Apache review to inspection in an industrial project. We conclude that Apache reviews can be described as (1) early, frequent reviews (2) of small, independent, complete contributions (3) conducted asynchronously by a potentially large, but actually small, group of self-selected experts (4) leading to an efficient and effective peer review technique.

[1]  M. Uihlein Open , 2018 .

[2]  Stephane Lussier,et al.  New tricks: how open source changed the way my team works , 2004, IEEE Software.

[3]  Michael E. Fagan Design and Code Inspections to Reduce Errors in Program Development , 1976, IBM Syst. J..

[4]  Karl E. Wiegers,et al.  Peer Reviews in Software: A Practical Guide , 2001 .

[5]  Robert E. Cole,et al.  From a Firm-Based to a Community-Based Model of Knowledge Creation: The Case of the Linux Kernel Development , 2003, Organ. Sci..

[6]  Audris Mockus,et al.  Understanding the sources of variation in software inspections , 1998, TSEM.

[7]  Harvey P. Siy,et al.  An experiment to assess the cost-benefits of code inspections in large scale software development , 1995, SIGSOFT '95.

[8]  Dawson R. Engler,et al.  Bugs as deviant behavior: a general approach to inferring errors in systems code , 2001, SOSP.

[9]  Roy T. Fielding,et al.  The Apache HTTP Server Project , 1997, IEEE Internet Comput..

[10]  James M. Bieman,et al.  The FreeBSD project: a replication case study of open source development , 2005, IEEE Transactions on Software Engineering.

[11]  Adam A. Porter,et al.  Reducing Inspection Interval in Large-Scale Software Development , 2002, IEEE Trans. Software Eng..

[12]  D. Budescu,et al.  A Psychometric Analysis of the "Divide and Conquer" Principle in Multicriteria Decision Making. , 1998, Organizational behavior and human decision processes.

[13]  Chris Sauer,et al.  Technical Reviews: A Behaviorally Motivated Program of Research , 2022 .

[14]  Edward F. Weller Using metrics to manage software projects , 1994, Computer.

[15]  Jai Asundi,et al.  Patch Review Processes in Open Source Software Development Communities: A Comparative Case Study , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

[16]  Audris Mockus,et al.  A case study of open source software development: the Apache server , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[17]  Karl Fogel,et al.  Producing open source software - how to run a successful free software project , 2005 .

[18]  Andy Huber,et al.  Peer reviews in software: a practical guide , 2002, SOEN.

[19]  Lawrence G. Votta,et al.  Does every inspection need a meeting? , 1993, SIGSOFT '93.

[20]  Harvey P. Siy,et al.  An Experiment ot Assess the Cost-Benefits of Code Inspections in Large Scale Software Development , 1997, IEEE Trans. Software Eng..

[21]  Philip M. Johnson Reengineering inspection , 1998, CACM.

[22]  Michael Gertz,et al.  Mining email social networks , 2006, MSR '06.

[23]  Harvey P. Siy,et al.  Understanding the Effects of Developer Activities on Inspection Interval , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[24]  Michael E. Fagan A History of Software Inspections , 2002, Software Pioneers.