The 8 Principles of Continuous Delivery

Continuous delivery promotes the adoption of an automated deployment pipeline to release software into production reliably and quickly.

Its goal is to establish an optimized end-to-end process, enhance the development to production cycles, lower the risk of release problems and provide a quicker time to market. To that point,  Jez Humble and Dave Farley define the 8 principles of continuous delivery in their Book “Continuous Delivery” as follows:

1.  Repeatable Reliable Process

Use the same release process in all environments. If a feature or enhancement has to work through one process on its way into the integration environment, and another process into QA, issues find a way of popping up.

2.  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.

continuous-delivery-tools

3.  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.

4.  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 perfect.

5.  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.

6.  "Done" Means Released

database continuous delivery.pngA 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.

7.  Everyone is Responsible 

"It works on my station" is 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.

8.  Continuous Improvement

Out of all 8 principles of continuous delivery listed here,  if you ask me, this principle is the most important for effective automation. If "practice makes perfect" then automation represents the ultimate expression of a practice-making-perfect iterative process.

Culture is a non-starter. You absolutely must have a culture that seeks out continuous improvement. Moving beyond the motivation though, more often than not, automation provides the most accessible and most effective means to that end.

Moving in the direction of ever more repeatable, reliable and efficient practices, automated iteration is the key ingredient to realizing substantial ROI on your continuous delivery efforts.


Like what you see? Click here to learn what can be gained  <http://www3.dbmaestro.com/continuous-delivery-best-practices-and-essential-tools>  by applying continuous delivery principles to forgotten elements of the IT  ecosystem >>  <http://www3.dbmaestro.com/continuous-delivery-best-practices-and-essential-tools>

continuous-delivery-tools

Featured Posts

Database Design Best Practices: 7 Mistakes to Avoid

Yaniv Yehuda | May 02, 2018
While the main focus of DevOps efforts has been placed on application-side development, the database plays an important role in ensuring smooth sailing. 
Read More