Toward Design Decisions to Enable Deployability: Empirical Study of Three Projects Reaching for the Continuous Delivery Holy Grail
June 2014 • Conference Paper
This paper summarizes three project teams' deployability goals and the architectural decisions they made to enable deployability while practicing continuous delivery.
This paper was presented at the First International Workshop on Dependability and Security of System Operation (DSSO 2014) in Atlanta, Georgia, on June 23, 2014, and was published by IEEE in the Proceedings of the 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks.
There is growing interest in continuous delivery practices to enable rapid and reliable deployment. While practices are important, we suggest architectural design decisions are equally important for projects to achieve goals such continuous integration (CI) build, automated testing and reduced deployment-cycle time. Architectural design decisions that conflict with deployability goals can impede the team's ability to achieve the desired state of deployment and may result in substantial technical debt. To explore this assertion, we interviewed three project teams striving to practicing continuous delivery. In this paper, we summarize examples of the deployability goals for each project as well as the architectural decisions that they have made to enable deployability. We present the deployability goals, design decisions, and deployability tactics collected and summarize the design tactics derived from the interviews in the form of an initial draft version hierarchical deployability tactic tree.