Characterizing The Influence of Continuous Integration: Empirical Results from 250+ Open Source and Proprietary Projects

Akond Rahman, Amritanshu Agrawal, Rahul Krishna, and Alexander Sobran in 4th International Workshop on Software Analytics (SWAN), co-located with European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), 2018 Pre-print

Continuous integration (CI) tools integrate code changes by automatically compiling, building, and executing test cases upon submission of code changes. Use of CI tools is getting increasingly popular, yet how proprietary projects reap the benefits of CI remains unknown. To investigate the influence of CI on software development, we analyze 150 open source software (OSS) projects, and 123 proprietary projects. For OSS projects, we observe the expected benefits after CI adoption, e.g., improvements in bug and issue resolution. However, for the proprietary projects, we cannot make similar observations. Our findings indicate that only adoption of CI might not be enough to the improve software development process. CI can be effective for software development if practitioners use CI’s feedback mechanism efficiently, by applying the practice of making frequent commits. For our set of proprietary projects we observe practitioners commit less frequently, and hence not use CI effectively for obtaining feedback on the submitted code changes. Based on our findings, we recommend industry practitioners to adopt the best practices of CI to reap the benefits of CI tools for example, making frequent commits.