The Agile movement began as a reaction to frustration over slow delivery of software that often didn’t sufficiently meet user needs. Agile improved software delivery and DevOps and Continuous Delivery extend what Agile began. Software development velocity may improves only to run into deployment-related delays due to issues such as inability to integrate frequently, challenges completing automated testing within an increment/build cycle and uncertainty about whether a build is stable and/or secure enough for external release. To avoid problems such as these, we suggest that design decisions need to align with deployment goals early and continuously such as reducing deployment pipeline cycle time. In addition, the application design should enable continuous delivery practices such as continuous integration, automated testing, synchronizing environments, etc. If not addressed, misaligned design decisions can become a form of technical debt - a heavy burden slowing down the release cycle that the project carries forward release to release. SEI is exploring what design decisions projects may want to consider early to enable deployability. In this talk, we summarize the challenges in this space and provide empirical examples of deployment-driven design tactics derived from real world projects striving toward continuous delivery.
Sign in to add slides, notes or videos to this session