CD Dependencies

Visual guide to the dependencies and practices that enable Continuous Delivery

The practices and capabilities shown below are based on research and industry standards documented at MinimumCD.org Practices.

Overview

Continuous Delivery is built on a foundation of practices that depend on each other. This dependency tree shows how fundamental practices like Trunk-Based Development, Test-Driven Development, and Behavior-Driven Development support Continuous Integration, which in turn enables Continuous Delivery.

For detailed information about each practice, including implementation guides and research backing, visit practices.minimumcd.org.

CD Dependency Tree

dedicated build server

scripted builds

versioned code base

builds are stored

auto-triggered build

automated tag & versioning

pipeline with deploy to prod

build once, auto-deploy anywhere

scripted config changes

standard process for all envs

automatic DB deploys

zero downtime deploys

zero-touch continuous deployments

defined & documented product development process

definition of done

prioritized work

working agreements

adopt basic Agile methods

one backlog per team

remove boundaries between dev, test, & support

share the pain

stable teams

act on build, quality, test, deploy and operational metrics

common process for all changes

component ownership

decentralize decisions

extended team collaboration

frequent commits

dedicated continuous improvement process

dedicated tools team

deploy disconnected from release

team responsible thru release

cross-functional teams

no rollbacks, always roll forward

consolidated platform & tech

automated api management

library management

organize system into modules

version control DB changes

branch by abstraction

configuration as code / managed configs

feature hiding / toggling

making components from modules

no long-lived branches, trunk-based development

full component based arch

push business metrics

infrastructure as code

baseline process metrics

manual reporting

measure the process

scheduled quality reports

static code analysis

common information model

report history is available

traceability built into pipeline

dynamic test coverage analysis

graphing as a service

report trend analysis

cross-silo analysis

dynamic graphing and dashboards

automatic unit tests

separate test environment

automatic integration tests

automatic isolated component tests

some automatic acceptance tests

automatic performance tests

automatic security tests

full automatic acceptance tests

risk-based manual testing

hypothesis-driven development

verify expected business value

Test Driven Development.

Continuous Integration.

Behavior Driven Development.

Trunk-based Development.

Continuous Delivery.