一句话:提出并工业部署 WhoDo,自动推荐代码评审者并引入负载均衡,缓解频繁推荐资深开发者的问题。
现代软件开发分布式且需快速敏捷迭代,为每个代码变更选择合适的评审者至关重要,但现有代码评审系统仍主要依赖人工选择;已有自动推荐研究多局限于回顾性分析。本文提出并实际部署评审者推荐算法 WhoDo,并将负载均衡纳入推荐流程,以缓解总是频繁推荐资深开发者的问题,形成“推荐+负载均衡”的混合系统。作者在 Microsoft 的五个代码仓库上评估该系统的实际效果,围绕提交的多个方面及代码评审的影响进行定量分析,并通过合作仓库的定性反馈加以佐证。结果展示了自动化评审者建议在大规模工业环境中的可行性与影响,但摘要未给出具体性能数值。
Today's software development is distributed and involves continuous changes for new features and yet, their development cycle has to be fast and agile. An important component of enabling this agility is selecting the right reviewers for every code-change - the smallest unit of the development cycle. Modern tool-based code review is proven to be an effective way to achieve appropriate code review of software changes. However, the selection of reviewers in these code review systems is at best manual. As software and teams scale, this poses the challenge of selecting the right reviewers, which in turn determines software quality over time. While previous work has suggested automatic approaches to code reviewer recommendations, it has been limited to retrospective analysis. We not only deploy a reviewer suggestions algorithm - WhoDo - and evaluate its effect but also incorporate load balancing as part of it to address one of its major shortcomings: of recommending experienced developers very frequently. We evaluate the effect of this hybrid recommendation + load balancing system on five repositories within Microsoft. Our results are based around various aspects of a commit and how code review affects that. We attempt to quantitatively answer questions which are supposed to play a vital role in effective code review through our data and substantiate it through qualitative feedback of partner repositories.
DOI 原文 ·
@inproceedings{paperbot5141,
title = {WhoDo: automating reviewer suggestions at scale},
author = {Sumit Asthana and Rahul Kumar and Ranjita Bhagwan and Christian Bird and Chetan Bansal and Chandra Maddila and Sonu Mehta and B. Ashok},
booktitle = {FSE},
year = {2019},
doi = {10.1145/3338906.3340449}
}