Improving Code Reviewer Recommendation: Accuracy, Latency, Workload, and Bystanders (2312.17169v2)
Abstract: The code review team at Meta is continuously improving the code review process. To evaluate the new recommenders, we conduct three A/B tests which are a type of randomized controlled experimental trial. Expt 1. We developed a new recommender based on features that had been successfully used in the literature and that could be calculated with low latency. In an A/B test on 82k diffs in Spring of 2022, we found that the new recommender was more accurate and had lower latency. Expt 2. Reviewer workload is not evenly distributed, our goal was to reduce the workload of top reviewers. We then ran an A/B test on 28k diff authors in Winter 2023 on a workload balanced recommender. Our A/B test led to mixed results. Expt 3. We suspected the bystander effect might be slowing down reviews of diffs where only a team was assigned. We conducted an A/B test on 12.5k authors in Spring 2023 and found a large decrease in the amount of time it took for diffs to be reviewed when a recommended individual was explicitly assigned. Our findings also suggest there can be a discrepancy between historical back-testing and A/B test experimental findings.
- Workload-Aware Reviewer Recommendation Using a Multi-Objective Search-Based Approach. In Proceedings of the 16th ACM International Conference on Predictive Models and Data Analytics in Software Engineering (Virtual, USA) (PROMISE 2020). Association for Computing Machinery, New York, NY, USA, 21–30. https://doi.org/10.1145/3416508.3417115
- Whodo: Automating reviewer suggestions at scale. In Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 937–945.
- Alberto Bacchelli and Christian Bird. 2013. Expectations, outcomes, and challenges of modern code review. In Proceedings of the 2013 international conference on software engineering. IEEE Press, 712–721.
- Vipin Balachandran. 2013. Reducing human effort and improving quality in peer code reviews using automatic static analysis and reviewer recommendation. In Proceedings of the 2013 International Conference on Software Engineering. IEEE Press, 931–940.
- The influence of non-technical factors on code review. In 2013 20th Working Conference on Reverse Engineering (WCRE). 122–131. https://doi.org/10.1109/WCRE.2013.6671287
- Don’t touch my code!: examining the effects of ownership on software quality. In Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering. ACM, 4–14.
- Process aspects and social dynamics of contemporary code review: Insights from open source development and industrial practice at microsoft. IEEE Transactions on Software Engineering 43, 1 (2016), 56–75.
- Christopher JC Burges. 2010. From ranknet to lambdarank to lambdamart: An overview. Learning 11, 23-581 (2010), 81.
- Understanding Why We Cannot Model How Long a Code Review Will Take: An Industrial Case Study (ESEC/FSE 2022). Association for Computing Machinery, New York, NY, USA, 6 pages. https://doi.org/10.1145/3540250.3558945
- J Cohen. 2006. Best kept secrets of peer code review. Smart Bear Inc., Austin, TX (2006), 117.
- M. E. Fagan. 1976. Design and Code Inspections to Reduce Errors in Program Development. IBM Systems Journal 15, 3 (1976), 182–211.
- The bystander-effect: a meta-analytic review on bystander intervention in dangerous and non-dangerous emergencies. Psychological bulletin 137, 4 (2011), 517.
- Impact of developer turnover on quality in open-source software. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering. ACM, 829–841.
- Does a programmer’s activity indicate knowledge of code?. In Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering. ACM, 341–350.
- How developers drive software evolution. In Eighth International Workshop on Principles of Software Evolution (IWPSE’05). IEEE, 113–122.
- Code Reviewing in the Trenches: Understanding Challenges, Best Practices and Tool Needs.
- Fahimeh Hajari. 2022. Balance Expertise, Workload and Turnover into Code Review Recommendation. Ph. D. Dissertation. Concordia University.
- Who should comment on this pull request? analyzing attributes for more accurate commenter recommendation in pull-based development. Information and Software Technology 84 (2017), 48–62.
- Does reviewer recommendation help developers? IEEE Transactions on Software Engineering (2018).
- An Empirical Investigation of Socio-Technical Code Review Metrics and Security Vulnerabilities. In Proceedings of the 6th International Workshop on Social Software Engineering (Hong Kong, China) (SSE 2014). Association for Computing Machinery, New York, NY, USA, 37–44. https://doi.org/10.1145/2661685.2661687
- Ehsan Mirsaeedi and Peter C. Rigby. 2020. Mitigating Turnover with Code Review Recommendation: Balancing Expertise, Workload, and Knowledge Distribution. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering (Seoul, South Korea) (ICSE ’20). Association for Computing Machinery, New York, NY, USA, 1183–1195. https://doi.org/10.1145/3377811.3380335
- Audris Mockus and James D Herbsleb. 2002. Expertise browser: a quantitative approach to identifying expertise. In Proceedings of the 24th International Conference on Software Engineering. ICSE 2002. IEEE, 503–512.
- Systemic Gender Inequities in Who Reviews Code. Proc. ACM Hum.-Comput. Interact. 7, CSCW1, Article 94 (apr 2023), 59 pages. https://doi.org/10.1145/3579527
- Understanding the sources of variation in software inspections. ACM Transactions on Software Engineering and Methodology (TOSEM) 7, 1 (1998), 41–79.
- Foyzur Rahman and Premkumar Devanbu. 2011. Ownership, experience and defects: a fine-grained study of authorship. In Proceedings of the 33rd International Conference on Software Engineering. ACM, 491–500.
- Correct: code reviewer recommendation in github based on cross-project and technology experience. In 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C). IEEE, 222–231.
- Peter C Rigby and Christian Bird. 2013. Convergent contemporary software peer review practices. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering. ACM, 202–212.
- Peer review on open-source software projects: Parameters, statistical models, and theory. ACM Transactions on Software Engineering and Methodology (TOSEM) 23, 4 (2014), 35.
- Peter C Rigby and Margaret-Anne Storey. 2011. Understanding broadcast based peer review on open source software projects. In 2011 33rd International Conference on Software Engineering (ICSE). IEEE, 541–550.
- The impact of human factors on the participation decision of reviewers in modern code review. Empirical Software Engineering 24 (2019), 973–1016.
- Modern code review: a case study at google. In Proceedings of the 40th International Conference on Software Engineering: Software Engineering in Practice. ACM, 181–190.
- Using a Context-Aware Approach to Recommend Code Reviewers: Findings from an Industrial Case Study. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in Practice (Seoul, South Korea) (ICSE-SEIP ’20). Association for Computing Machinery, New York, NY, USA, 1–10. https://doi.org/10.1145/3377813.3381365
- Revisiting code ownership and its relationship with software quality in the scope of modern code review. In Proceedings of the 38th international conference on software engineering. ACM, 1039–1050.
- Who should review my code? a file location-based code-reviewer recommendation approach for modern code review. In 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER). IEEE, 141–150.
- Reviewer recommendation for pull-requests in GitHub: What can we learn from code review and bug assignment? Information and Software Technology 74 (2016), 204–218.
- Automatically Recommending Peer Reviewers in Modern Code Review. IEEE Trans. Softw. Eng. 42, 6 (June 2016), 530–543. https://doi.org/10.1109/TSE.2015.2500238
- Using Large-scale Heterogeneous Graph Representation Learning for Code Review Recommendations at Microsoft.