Comparing pre‐commit reviews and post‐commit reviews using process simulation. Issue 11 (27th April 2017) - Baum, Tobias; Kortum, Fabian; Schneider, Kurt; Brack, Arthur; Schauder, Jens
Abstract: Code review in practice is often performed change‐based, ie, using the code changes belonging to a task to determine which code to review. Previous studies found that 2 variations of this process are used in industry: pre‐commit review and post‐commit review. The choice between these has implications not only for practitioners deciding on a code review process to use but also for the development of review tools and for experimentation with review processes. In some situations, a specific variant is clearly preferable due to the nature of the development process or team. In other situations, there are conflicting opinions. So we asked: Are there practically relevant performance differences between pre and post‐commit reviews? How are these differences influenced by contextual factors? To assess these questions, we designed a parametric discrete event simulation model of certain agile development processes. We validated this model with practitioner's feedback and in part also with empirical data from industry. Our analysis indicates that the best choice does depend on the context but also that there are many situations with no practically relevant difference between both choices. We identified the main influencing factors and underlying effects and condensed our findings into heuristic rules. Abstract : Which software development teams should use pre‐commit reviews (pull requests) and which should use post‐commit reviews? And when doesn't it matter at all? This paper answers these questions based on a parametric discrete event simulation model.