Continuous Integration (CI) is a software development practice that builds and tests software frequently (e.g., at every push). One main motivator to adopt CI is the potential to deliver software functionalities more quickly than not using CI. However, there is little empirical evidence to support that CI helps projects deliver software functionalities more quickly. Through the analysis of 162,653 pull requests (PRs) of 87 GitHub projects, we empirically study whether adopting a CI service (TravisCI) can quicken the time to deliver merged PRs. We complement our quantitative study by analyzing 450 survey responses from participants of 73 software projects. Our results reveal that adopting a CI service may not necessarily quicken the delivery of merge PRs. Instead, the pivotal benefit of a CI service is to improve the decision making on PR submissions, without compromising the quality or overloading the project's reviewers and maintainers. The automation provided by CI and the boost in developers' confidence are key advantages of adopting a CI service. Furthermore, open-source projects planning to attract and retain developers should consider the use of a CI service in their project, since CI is perceived to lower the contribution barrier while making contributors feel more confident and engaged in the project.
翻译:持续集成(CI)是一种软件开发实践,通过频繁构建和测试软件(例如每次提交时)来保障质量。采用CI的主要动机之一是可能比不使用CI更快地交付软件功能。然而,关于CI是否确实帮助项目更快交付软件功能,目前缺乏充分的实证证据。通过对87个GitHub项目的162,653个拉取请求(PR)进行分析,我们实证研究了采用CI服务(TravisCI)是否能够加速合并PR的交付时间。我们通过分析来自73个软件项目参与者的450份调查回复,对定量研究进行了补充。结果显示,采用CI服务未必能必然加快合并PR的交付。反之,CI服务的核心优势在于改善对PR提交的决策效率,同时不损害质量或加重项目评审者与维护者的负担。CI提供的自动化功能以及开发者信心的提升,是采用CI服务的关键优势。此外,计划吸引并留住开发者的开源项目应考虑在其项目中采用CI服务,因为CI被视为能降低贡献门槛,同时让贡献者感到更有信心并更积极地参与项目。