将专业知识、工作负载与人员流动纳入代码审查推荐
软件工程
2023-12-29 v1
摘要
开发人员流动在软件项目中不可避免,会导致知识流失、生产力下降以及缺陷增加。应对流动的缓解策略往往会打乱开发人员的工作并增加其工作负载。在本工作中,我们建议通过代码审查推荐来分发知识并缓解人员流动影响,同时更均匀地分配审查工作负载。我们进行了历史分析,以理解审查工作负载的自然集中程度以及代码审查中固有的知识传播程度。尽管审查工作负载高度集中,但我们表明代码审查能自然地传播知识,从而减少因人员流动而面临风险的文件数量。利用仿真,我们评估了现有的代码审查推荐器,并开发了新型推荐器,以了解它们对审查期间专业水平、审查员工作负载以及面临流动风险文件数量的影响。我们的仿真使用 seeded 随机替换审查员的方法,使我们能够在不混淆不同推荐器所替换审查员差异的情况下比较各审查员推荐器。结合多种推荐器,我们开发了 SofiaWL 推荐器,当被审查文件并非仅由一名开发人员知晓时,该推荐器会建议活跃审查工作负载较低的专家;相反,当知识集中在一名开发人员身上时,它会将审查发送给其他审查员以传播知识。对于我们研究的项目,我们能够全局性地提高审查期间的专业水平(+3%),降低工作负载集中度(-12%),并减少面临风险的文件数量(-28%)。我们在复现包中提供了脚本和数据。开发人员可根据项目需求优化特定结果指标,或使用我们的 GitHub 机器人自动平衡各项结果。
引用
@article{arxiv.2312.17236,
title = {Factoring Expertise, Workload, and Turnover into Code Review Recommendation},
author = {Fahimeh Hajari and Samaneh Malmir and Ehsan Mirsaeedi and Peter C. Rigby},
journal= {arXiv preprint arXiv:2312.17236},
year = {2023}
}