& compliance Testing Data management Configuration management Level 3 (Optimising) Teams meet to discuss integration problems resolve via automation, visibility, feedback All environments managed effectively. Provisioning fully automated. DevOps culture, collaboration to reduce risks, cycle time Production rollbacks rare. Defects found and fixed immediately Release to release feedback loop of database performance & deployment process Zero downtime provisioning of infrastructure. Automatic rollback, self service Level 2 (Quantitatively managed) Build metrics gathered, made visible and acted on. Builds are not left broken. Orchestrated deployments managed. Release and rollback processes tested. Environment and application health proactively managed. Cycle time monitored Quality metrics and trends tracked. Non-functional requirements defined, measured Database upgrades & rollbacks tested with deployment. Database performance monitored, optimised Ability to manually roll back changes quickly and safely Level 1 (Consistent) Automated build and test cycle when a change is committed. Artifacts managed Fully automated, push-button deployment. Same artifact, process for each environment. Change management and approval processes defined, enforced. Automated unit and acceptance tests. Testing part of development. Database changes performed automatically as part of deployment Provisioned infrastructure result of an automated delivery pipeline. Idempotent. Level 0 (Repeatable) Regular automated build and testing. Any build can be recreated from source Automated deploys to some environments. Configuration versioned Painful, infrequent, but reliable releases. Limited traceability from requirements Automated tests written as part of story development Changes to databases done with version controlled scripts. Provisioning scripted but executed ad-hoc Level -1 (Regressive) Manual processes for building software. No management of artifacts and reports Manual deployment. Environment-specific binaries. Manual environment creation Infrequent and unreliable releases Manual testing after development Data migrations unversioned and performed manually Infrastructure built manually, existing infrastructure cannot be rebuilt. Provision painful. Practice Build management & CI Environments & Deployment Release management & compliance Testing Data management Configuration management