MinimumCD.org

Minimum Viable CD

“Continuous delivery improves both delivery performance and quality, and also helps improve culture and reduce burnout and deployment pain.”

– Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations

We, the undersigned, believe that a minimal definition of continuous delivery (CD) is required to improve the flow of delivery and achieve the outcomes above. While our contexts may be different, there are universal practices common in all. By defining them we can:

  • Introduce new practitioners in a consistent way
  • Discuss engineering practices that comprise CD
  • Help each other improve current capabilities

Only by implementing core practices do we begin to see the benefits of continuous delivery.

The practices below are the minimum, a starting point. Continuous improvement of the speed, quality, and safety of the delivery pipeline is the expected outcome.


Continuous Delivery

CD is the engineering discipline of delivering all changes in a standard way safely. It covers a broad spectrum of activities depending on what is being delivered. However, there are behaviors and abilities that must be met in every context to qualify as “continuous delivery”

The minimum activities required for CD are:

Continuous Integration

CI is the activity of very frequently integrating work to the trunk of version control and verifying that the work is, to the best of our knowledge, releasable.

The minimum activities required for CI are:

  • Trunk-based development
  • Work integrates to the trunk at a minimum daily
  • Work has automated testing before merge to trunk
  • Work is tested with other work automatically on merge
  • All feature work stops when the build is red
  • New work does not break delivered work

Trunk-based Development

Trunk-based development is the branching pattern required to meet the definition of CI. It prevents lost work, the risk of corruption that comes from merge conflict resolution, and also reduces movement waste that increases batch size.

  • The minimum activities required for TBD are:
    • All changes integrate into the trunk
    • If branches from the trunk are used:
      • They originate from the trunk
      • They re-integrate to the trunk
      • They are short-lived and removed after the merge

Why did we build this?

For background on Minimum CD and answers to other common questions, please read the FAQs.

Contributing

Do you want to submit a translation, good practices, suggestions, or an experience report?

Read our contribution guidelines.

Contributors

Azlam Abdulsalam - Justin Abrahms - Graham Allan - Tracy Bannon - Istvan Bathazi - Kaine Bent - Marc Boudreau - Kelly Brownsberger - Shawn Button - Daniel Calle - Patrice Corbard - Jeff Dunn - Nick Eggleston - Alessandro Fardin - Dave Farley - Javier Lopez Fernandez - Bryan Finster - Tiago Gabriel - Chris Gallivan - Chris Gossett - Nathen Harvey - Dave Hawes-Johnson - Adam Hawkins - Ferrix Hovi - Patrick S. Kelso - Jan Krag - Andrea Laforgia - Jean-François Lépine - Jesse Lin - Javier A Magaña - Jerreck McWilliams - Nathan Nicholson - Rosalind Radcliffe - Christina Rhylander - Prasanjit Singh - Emiliano Sutil

Signatories

Dave Farley - Bryan Finster - Ferrix Hovi - Justin Abrahms - Joe Arrowood - Jerreck McWilliams - Istvan Bathazi - Sara Gramling - Tracy Bannon - Dana Finster - Patrick S. Kelso - Ben Link - Chris Kernaghan - Chris Gossett - Joshua Barton - Marc Boudreau - Courtney Kissler - Andrea Laforgia - Michael Nygard - Aurel Estoup - Emiliano Sutil - Jason Walker - Thomas J. Sweet - Kelly Brownsberger - Andrew Marshall - Vilas Veeraraghavan - Javier Lopez - Javier Magana - Faraz Syed - James Simon - Nathen Harvey - Jesse Getzie - Christophe Chaudier - Rosalind Radcliffe - Austin Abro - Ron Forrester - David Hawes-Johnson - Paul Moore - Shawn Button - Jesse Lin - Markus Mikkolainen - Alessandro Fardin - James Moverley - Michael Kingery - Isaac Perez Moncho - Igor Gassmann - Wayne Gaskill - Chris Gallivan - Alexander Birk - Kaine Bent - Andrew Ochsner - Stephen Magill - Jordan Schwartz - Jean-François Lépine - Markus Arikan - Jeff Dunn - Bob Winter - Azlam Abdulsalam - Jos Hendriks - Nathan Nicholson - William H. Kirk - John Boyes - Patrice Corbard - Dirk Lehmann - Niko Kivelä - Vu Ha - Srđan Đukić - Andy Roth - Peter Maddison - Cari Copeland - Kevin LaBranche - Bjorn Edwin - Daniel Calle - Phillip Parker - Savinder Puri - Michael Küsters - Bryan Guinn - Adam Hawkins - Guillaume Faas - Leandro Zis - Jan Krag - Niko Heikkilä - Tiago Gabriel - Ray Myers - Andrew Khoury - Bosse Nyström - Mili Oručević - Albert Rigo - Anders Nyvang - Christian Pendleton - Arialdo Martini - Jamie Taylor - Eduardo Ferro - Sumit Agarwal - Vincent Ospazi - Angel Rivera - Jason van Brackel - Thomas Vitale - Martin Gross - Richard Abercrombie - João Farias - Tycko;Franklin - Ali Kamalizade - Nikhil Thakare -