Continuous delivery is a software engineering approach that uses interrelated principles and practices to ensure software is always in a deployable state. The idea is to reduce the cost, time, and risk of delivering changes so you can deploy more often and ensure that your software is heading in the right direction. By testing your product and feature ideas sooner, you can avoid spending money on building features unimportant to your customers and move your focus elsewhere. Easier said than done.
In theory, continuous delivery is an excellent idea, but in practice often creates downstream organizational challenges that can be difficult to overcome. The further your organization is from the intended design (the more divisions involved), the greater the challenge. Process challenges also occur with the organizational changes that come with CD. Processes intended as quality gates or compliance requirements may need a review to assess their impact on throughput and workflow. If a team can deliver a feature in two days, but there is a two-week approval step, you must flag this as the critical constraint to resolve. Technical challenges also need to be addressed especially when attempting to create your own tools which can be expensive and may not be feasible in your current environment.
When you design your processes around continuous delivery, you can deploy changes on-demand with high confidence. To do this, you must identify all activities needed to make your software ready to ship and then use them to build your own deployment pipeline. Continuous delivery and DevOps take this approach one step further, with extensive research and theory-driven scientific analysis to create the perfect pipeline making your team deployment masters.
You will learn:
- How to manage organizational challenges that arise from CD practices
- How teams can navigate the process and technical challenges that CD presents
- How to build the right deployment pipeline for your organization