Use continuous delivery
Continuous delivery helps you implement changes like new features into production quickly and safely.
Using continuous delivery has multiple benefits.
Iterate code frequently
It’s cheaper and easier to deliver small changes to production, meaning you can get feedback from users quickly.
Frequent small changes make it easier to diagnose problems, and the cost of fixing them is much lower than with large releases.
Quality software builds
Automated test suites allow you to quickly identify regressions in your software. This means you can focus on exploratory, usability, performance and security testing.
Building and releasing software in small pieces helps you focus on writing small composable bits of code. This means your code is easier to maintain and update.
With continuous delivery use frequent integration with the master branch, automatic build promotion and production monitoring.
Frequent integrations with master branch
If your team’s environment is regulated, and you need evidence that you review all code changes, raise and merge frequent small pull requests. For example, Fourth Wall Helpful, a client-side pull request and build status monitor for Github repositories, could help you build a team culture to support this practice.
Use approaches like feature-flagging or modular architectures to deploy partially complete features. This reduces the size of changes going to production and encourages your team to build modular, configurable systems.
Automatic build promotion
You can quickly distinguish between good and bad builds with automatic build promtion. By deploying builds that have to pass multiple test jobs downstream of the intial build process you can get quicker feedback if the build fails.
Use production monitoring and alerting
You can understand the effect of your changes on production using production monitoring and alerting. Monitoring essential parts of your system allows you to see if changes have any unintended impacts and to respond quickly in case of problems.
How to measure continuous delivery
Accelerate: The Science of Lean Software and Devops: Building and Scaling High Performing Technology Organizations suggests 3 metrics that correlate with high performing teams:
- lead time to change
- mean time to recovery
- frequency of releases
You could use these metrics to understand how effective your build and release process is and measure any changes.
Find out more about continuous delivery from:
- Architecting for Continuous Delivery - Jez Humble at Agile India 2016 (video)
- 2018 State of DevOps Report - see where you are and how to get to the next stage
- Accelerate: The Science of Lean Software and Devops: Building and Scaling High Performing Technology Organizations - by Nicole Forsgren Jez Humble Gene Kim
- Trunk Based Development - a source control branching method