Nudge:推动逾期拉取请求迈向完成
软件工程
2022-07-05 v5 人工智能
机器学习
编程语言
摘要
拉取请求是当今协作式软件开发与代码审查流程的关键部分。然而,当审查者或作者未积极参与拉取请求时,拉取请求也会拖慢软件开发进程。本工作中,我们设计了一个端到端服务 Nudge,通过提醒作者或审查者参与其逾期拉取请求,来推动逾期拉取请求迈向完成。首先,我们使用基于工作量估计与机器学习的模型来预测给定拉取请求的完成时间。其次,我们使用活动检测来过滤掉那些可能逾期但仍在发生充分动作的拉取请求。最后,我们使用参与者识别来弄清谁是拉取请求的阻碍者,并提醒相应的参与者(作者或审查者)。Nudge 的关键新颖之处在于,它成功缩短了拉取请求解决时间,同时确保在数千个仓库的规模上开发者认为所发通知有用。在微软使用的 147 个仓库上的随机试验中,与未收到 Nudge 通知的逾期拉取请求相比,Nudge 为 8,500 个拉取请求将解决时间减少了 60%。此外,收到 Nudge 通知的开发者将其中 73% 标记为正面。当将 Nudge 部署扩展到微软的 8,000 个仓库时,我们观察到类似结果:Nudge 在整整一年内发送了 210,000 条通知。这证明了 Nudge 扩展到数千个仓库的能力。最后,我们对部分 Nudge 通知的定性分析指出了未来研究方向,例如考虑拉取请求间的依赖关系与开发者可用性。
引用
@article{arxiv.2011.12468,
title = {Nudge: Accelerating Overdue Pull Requests Towards Completion},
author = {Chandra Maddila and Sai Surya Upadrasta and Chetan Bansal and Nachiappan Nagappan and Georgios Gousios and Arie van Deursen},
journal= {arXiv preprint arXiv:2011.12468},
year = {2022}
}