Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
169 tokens/sec
GPT-4o
7 tokens/sec
Gemini 2.5 Pro Pro
45 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
38 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Improving Code Reviewer Recommendation: Accuracy, Latency, Workload, and Bystanders (2312.17169v1)

Published 28 Dec 2023 in cs.SE

Abstract: Code review ensures that a peer engineer manually examines the code before it is integrated and released into production. At Meta, we develop a wide range of software at scale, from social networking to software development infrastructure, such as calendar and meeting tools to continuous integration. We are constantly improving our code review system, and in this work we describe a series of experiments that were conducted across 10's of thousands of engineers and 100's of thousands of reviews. We build upon the recommender that has been in production since 2018, RevRecV1. We found that reviewers were being assigned based on prior authorship of files. We reviewed the literature for successful features and experimented with them with RevRecV2 in production. The most important feature in our new model was the familiarity of the author and reviewer, we saw an overall improvement in accuracy of 14 percentage points. Prior research has shown that reviewer workload is skewed. To balance workload, we divide the reviewer score from RevRecV2 by each candidate reviewers workload. We experimented with multiple types of workload to develop RevRecWL. We find that reranking candidate reviewers by workload often leads to a reviewers with lower workload being selected by authors. The bystander effect can occur when a team of reviewers is assigned the review. We mitigate the bystander effect by randomly assigning one of the recommended reviewers. Having an individual who is responsible for the review, reduces the time take for reviews by -11%.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (37)
  1. 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
  2. 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.
  3. 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.
  4. 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.
  5. 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
  6. 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.
  7. 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.
  8. Christopher JC Burges. 2010. From ranknet to lambdarank to lambdamart: An overview. Learning 11, 23-581 (2010), 81.
  9. 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
  10. J Cohen. 2006. Best kept secrets of peer code review. Smart Bear Inc., Austin, TX (2006), 117.
  11. M. E. Fagan. 1976. Design and Code Inspections to Reduce Errors in Program Development. IBM Systems Journal 15, 3 (1976), 182–211.
  12. The bystander-effect: a meta-analytic review on bystander intervention in dangerous and non-dangerous emergencies. Psychological bulletin 137, 4 (2011), 517.
  13. 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.
  14. 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.
  15. How developers drive software evolution. In Eighth International Workshop on Principles of Software Evolution (IWPSE’05). IEEE, 113–122.
  16. Code Reviewing in the Trenches: Understanding Challenges, Best Practices and Tool Needs.
  17. Fahimeh Hajari. 2022. Balance Expertise, Workload and Turnover into Code Review Recommendation. Ph. D. Dissertation. Concordia University.
  18. 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.
  19. Does reviewer recommendation help developers? IEEE Transactions on Software Engineering (2018).
  20. 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
  21. 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
  22. 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.
  23. 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
  24. Understanding the sources of variation in software inspections. ACM Transactions on Software Engineering and Methodology (TOSEM) 7, 1 (1998), 41–79.
  25. 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.
  26. 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.
  27. 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.
  28. Peer review on open-source software projects: Parameters, statistical models, and theory. ACM Transactions on Software Engineering and Methodology (TOSEM) 23, 4 (2014), 35.
  29. 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.
  30. The impact of human factors on the participation decision of reviewers in modern code review. Empirical Software Engineering 24 (2019), 973–1016.
  31. 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.
  32. 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
  33. 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.
  34. 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.
  35. 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.
  36. 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
  37. Using Large-scale Heterogeneous Graph Representation Learning for Code Review Recommendations at Microsoft.
Citations (1)

Summary

We haven't generated a summary for this paper yet.