Enable the promotion into production of any build that passes our automated test and validation process either on demand using a button or automatically on commit.
If we have deployment process that existed for years, we have to document the steps in the deployment process, such as a value stream mapping exercise were we can incrementally assemble a document.
Once documented, automate as many manual steps as possible.
Rearchitect or remove steps that take a long time to complete.
To achieve this, development has to work closely with operations to ensure that all the tools and processes we create can be used downstream.
As a developer, nothing was so satisfying than when I pushed the button to deploy my code and see production metrics that it worked or let me fix it myself.
This ability has recently strongly diminished.
To achieve DevOps outcomes, our goal is to shift reliance to control mechanisms that can mitigate risks more effectively such as automated testing, deployment and peer review of changes.
There's no statistically significant success rate difference between deployment by developers or by operations.