The Choice of Code Review Process: A Survey on the State of the Practice

Code review has been known to be an effective quality assurance technique for decades. In the last years, industrial code review practices were observed to converge towards “change-based/modern code review”, but with a lot of variation in the details of the processes. Recent research also proposed hypotheses on factors that influence the choice of process. However, all current research in this area is based on small and largely non-random samples of cases. Therefore, we set out to assess the current state of the practice and to test some of these hypotheses with a survey among commercial software development teams. We received responses from 240 teams. They support many of the stated hypotheses, e.g., that change-based code review is the dominating style of code review in the industry, and that teams doing change-based code review have a lower risk that review use fades away. However, other hypotheses could not be confirmed, mainly that the balance of effects a team tries to reach with code reviews acts as a mediator in determining the details of the review process. Apart from these findings, we contribute the survey data set as a foundation for future research.

[1]  Michael W. Godfrey,et al.  Investigating technical and non-technical factors influencing modern code review , 2015, Empirical Software Engineering.

[2]  Andreas Spillner,et al.  Umfrage 2015 - Softwaretest in Praxis und Forschung , 2015, Softwaretechnik-Trends.

[3]  Jeffrey C. Carver,et al.  Impact of Peer Code Review on Peer Impression Formation: A Survey , 2013, 2013 ACM / IEEE International Symposium on Empirical Software Engineering and Measurement.

[4]  Forrest Shull,et al.  Studies on Reading Techniques , 2006 .

[5]  Sami Kollanus,et al.  Software Inspections in Practice: Six Case Studies , 2006, PROFES.

[6]  Thomas Grechenig,et al.  Applying Continuous Code Reviews in Airport Operations Software , 2012, 2012 12th International Conference on Quality Software.

[7]  Organizations , 1992, Restoration & Management Notes.

[8]  Kurt Schneider,et al.  A Faceted Classification Scheme for Change-Based Industrial Code Review Processes , 2016, 2016 IEEE International Conference on Software Quality, Reliability and Security (QRS).

[9]  Jean Philippe Pierre Decieux,et al.  Umfrage: Einführung in die Methoden der Umfrageforschung , 2011 .

[10]  Christian Bird,et al.  Convergent contemporary software peer review practices , 2013, ESEC/FSE 2013.

[11]  Forrest Shull,et al.  The empirical investigation of Perspective-Based Reading , 1995, Empirical Software Engineering.

[12]  Richard A. Baker,et al.  Code Reviews Enhance Software Quality , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[13]  Vahid Garousi,et al.  Hybrid software and system development in practice: waterfall, scrum, and beyond , 2017, ICSSP.

[14]  Stefan Biffl,et al.  Software Reviews: The State of the Practice , 2003, IEEE Softw..

[15]  Oliver Laitenberger,et al.  An encompassing life cycle centric survey of software inspection , 2000, J. Syst. Softw..

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

[17]  Jing Wang,et al.  Comparative case studies of open source software peer review practices , 2015, Inf. Softw. Technol..

[18]  Arie van Deursen,et al.  An exploratory study of the pull-based software development model , 2014, ICSE.

[19]  Kurt Schneider,et al.  Factors influencing code review processes in industry , 2016, SIGSOFT FSE.

[20]  Alberto Bacchelli,et al.  Expectations, outcomes, and challenges of modern code review , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[21]  Lasse Harjumaa,et al.  Peer reviews in real life - motivators and demotivators , 2005, Fifth International Conference on Quality Software (QSIC'05).

[22]  J. Conley Asking questions: A practical guide to questionnaire design , 1983 .

[23]  Hajimu Iida,et al.  Investigating Code Review Practices in Defective Files: An Empirical Study of the Qt System , 2015, 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories.

[24]  Margaret-Anne D. Storey,et al.  Understanding broadcast based peer review on open source software projects , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[25]  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).