Continuous Integration: The Silver Bullet?
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 mine 661 open source software (OSS) projects, and 171 proprietary projects. For OSS projects, we observe the expected benefits after CI adoption, i.e. more bugs are resolved, and more issues are resolved. However, for the proprietary projects, we cannot make similar observations. Therefore, we cannot claim that CI is the `silver bullet' for software development. Why is this so? Our findings indicate that only adoption of CI might not be enough to improve software development. CI can be effective for software development if practitioners use CI's feedback mechanism efficiently, by applying the practice of making frequent commits. For proprietary projects we observe practitioners to commit less frequently, and hence not use CI effectively, for obtaining feedback on the submitted code changes. We recommend practitioners to (i) apply the CI best practices along with adoption of CI tools, (ii) consider their team's development context before adopting CI tools, and (iii) after adoption of CI, investigate if CI satisfies their needs by applying software analytics.
READ FULL TEXT