Top 8 principles of Continuous Delivery
Jez Humble and Dave Farley defined the following principles in their Book “Continuous Delivery”:
- Repeatable reliable process – use the same release process in all environments. If a feature or enhancement has to work through one process on the way into the integration find a way of popping up.
- Automate everything – automate your builds, your testing, your releases, your configuration changes and everything else. Manual processes are inherently less repeatable, more prone to error and less efficient. Once you automate a process, less effort is needed to run it and monitor its progress – and it will ensure you get consistent results.
- Version control everything – code, configuration, scripts, databases, documentation. Everything! Having one source of truth – and a reliable one – gives you a stable foundation to build your processes upon.
- “Bring the pain forward” – deal with the hard stuff first. Time-consuming or error prone tasks should be dealt with as soon as you can. Once you get the painful issues out of the way, the rest will most likely be easier to prefect.
- Build in quality – create short feedback loops to deal with bugs as soon as they are created. By having issues looped back to developers as soon as they fail post-build test, it will enable them to produce higher quality code quicker. In addition, fewer issues will be found later on in the process, when it will be more expensive to fix.
- Done means released – a feature is done only when it is in production. Having a clear definition of “done” right from the start will help everyone communicate better, and realize the value in each feature.
- Everyone is responsible – “It works on my station” was never a valid excuse. Responsibility should extend all the way to production. Cultural change can be the hardest to implement. However, having management support and an enthusiastic champion will certainly help.
- Continuous improvement – of all of the above. IMHO, this principle is especially important for automation. If “practice makes perfect” than automation is the next level – perfect, repeatable, reliable and efficient – perfecting your automation process is a key ingredient to bringing substantial ROI to CD.
These 8 benefits of continuous agile testing is great. Thanks for sharing the blog post.
ReplyDeleteThanks, Ricky. I appreciate your comments on this post.
Delete