# Continuous Integration, Delivery and Deployment: A Systematic Review on   Approaches, Tools, Challenges and Practices

**Authors:** Mojtaba Shahin, Muhammad Ali Babar, Liming Zhu

arXiv: 1703.07019 · 2017-03-22

## TL;DR

This systematic review analyzes approaches, tools, challenges, and practices in continuous integration, delivery, and deployment, highlighting key methods, critical factors, and gaps for future research in enabling reliable and frequent software releases.

## Contribution

It classifies existing approaches and tools for continuous practices, identifies key challenges and practices, and highlights research gaps for advancing continuous integration, delivery, and deployment.

## Key findings

- Identified 30 approaches and tools for continuous practices
- Highlighted critical factors influencing successful adoption
- Mapped challenges and practices in continuous deployment processes

## Abstract

Context: Continuous practices, i.e., continuous integration, delivery, and deployment, are the software development industry practices that enable organizations to frequently and reliably release new features and products. With the increasing interest in and literature on continuous practices, it is important to systematically review and synthesize the approaches, tools, challenges, and practices reported for adopting and implementing continuous practices. Objective: This research aimed at systematically reviewing the state of the art of continuous practices to classify approaches and tools, identify challenges and practices in this regard, and identify the gaps for future research. Method: We used systematic literature review (SLR) method for reviewing the peer-reviewed papers on continuous practices published between 2004 and 1st June 2016. We applied thematic analysis method for analysing the data extracted from reviewing 69 papers selected using predefined criteria. Results: We have identified thirty approaches and associated tools, which facilitate the implementation of continuous practices in the following ways: (1) "reducing build and test time in continuous integration (CI)"; (2) "increasing visibility and awareness on build and test results in CI"; (3) "supporting (semi-) automated continuous testing"; (4) "detecting violations, flaws and faults in CI"; (5) "addressing security and scalability issues in deployment pipeline", and (6) "improving dependability and reliability of deployment process". We have also determined a list of critical factors such as "testing (effort and time)", "team awareness and transparency", "good design principles", "customer", "highly skilled and motivated team", "application domain", and "appropriate infrastructure" that should be carefully considered when introducing continuous practices in a given organization.

---
Source: https://tomesphere.com/paper/1703.07019