An Empirical Study of Architecting for Continuous Delivery and Deployment
Mojtaba Shahin, Mansooreh Zahedi, Muhammad Ali Babar, Liming Zhu

TL;DR
This study investigates how software architecture influences continuous delivery and deployment, proposing a framework that guides re-architecting practices to support frequent, reliable software releases.
Contribution
It introduces a systematic, evidence-based framework for architecting systems to enable effective continuous delivery and deployment, emphasizing quality attributes and operational strategies.
Findings
Monoliths can support CD with proper strategies.
Small, independent deployment units facilitate CD.
Architectural quality attributes like resilience are crucial for CD.
Abstract
Recently, many software organizations have been adopting Continuous Delivery and Continuous Deployment (CD) practices to develop and deliver quality software more frequently and reliably. Whilst an increasing amount of the literature covers different aspects of CD, little is known about the role of software architecture in CD and how an application should be (re-) architected to enable and support CD. We have conducted a mixed-methods empirical study that collected data through in-depth, semi-structured interviews with 21 industrial practitioners from 19 organizations, and a survey of 91 professional software practitioners. Based on a systematic and rigorous analysis of the gathered qualitative and quantitative data, we present a conceptual framework to support the process of (re-) architecting for CD. We provide evidence-based insights about practicing CD within monolithic systems and…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Techniques and Practices · Software System Performance and Reliability · Advanced Software Engineering Methodologies
