Pull requests are a key part of the collaborative software development and code review process today. However, pull requests can also slow down the software development process when the reviewer(s) or the author do not actively engage with the pull request. In this work, we design an end-to-end service, Nudge, for accelerating overdue pull requests towards completion by reminding the author or the reviewer(s) to engage with their overdue pull requests. First, we use models based on effort estimation and machine learning to predict the completion time for a given pull request. Second, we use activity detection to reduce false positives. Lastly, we use dependency determination to understand the blocker of the pull request and nudge the appropriate actor(author or reviewer(s)). We also do a correlation analysis to understand the statistical relationship between the pull request completion times and various pull request and developer related attributes. Nudge has been deployed on 147 repositories at Microsoft since 2019. We do a large scale evaluation based on the implicit and explicit feedback we received from sending the Nudge notifications on 8,500 pull requests. We observe significant reduction in completion time, by over 60%, for pull requests which were nudged thus increasing the efficiency of the code review process and accelerating the pull request progression.
翻译:在这项工作中,我们设计了终端到终端服务Nudge,以通过提醒作者或审评员处理逾期的拉动请求来加快逾期的拉动请求。首先,我们使用基于努力估算和机器学习的模式来预测某一拉动请求的完成时间。第二,我们利用活动探测来减少虚假的肯定。最后,我们利用依赖性测定来理解拉动请求的阻塞,并激励适当的行为者(作者或审评员)。我们还进行相关分析,以了解拉动请求的完成时间与各种拉动请求和开发者相关属性之间的统计关系。Nudge自2019年以来一直部署在微软公司147个仓库。我们根据我们收到的关于8 500拉动请求发送Njudge通知的隐含和明确的反馈,进行了大规模评估。我们观察到,完成时间大大缩短了,超过60 %,以了解拉动请求的进度加快了请求的进度。