Site logo 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

MinimumCD

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.

Starting the Journey

Questions on where to start? Check out some recommendations.

Contributing

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

Read our contribution guidelines.

Contributors

(45)

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

Signatories

(160)

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  Ciro Lucio Tecce  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  Justin Thomsen  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  Ono Vaticone  Jordan TEMIM  Scott Hammer  Brian Lindner  Anyul Rivas  Peter Gfader  Patrick McEvoy  Domenico Luciani  Tareq Kirresh  Dinkar Gupta  Thomas Much  John Fly  Nick Zdunic  Adrienne Shulman  Luke Gee  Garrard Kitchen  Gaël Hauspie  Jon Palle Hansen  Paolo Carta  Luca Ingianni  Falko Werner  Jared Wooten  Jon Fazzaro  Thomas A. McGonagle  Ferenc Erki  Vincent Vaur  Denis Favreau  John Wilson  Ortwin De Witte  David Nguyen  Anton Kollmats  Russell Smiley  Kevin Boots  Anthony Accioly  Jeff Schulman  Dardan Bekteshi  Don Murray  Alexander Shikanga-Tindi  Denis Baltor  Joe Crowley  Shinto C V  Tom Lingham  Andrew Baldino  Huseyin Caglayan  Michael Switzer  Jason Weiss  Maximilian Beck  Murat Han Celik  Dominik Guhr  Mike Carey  Denis Čahuk  Marcelo Chiaradia  Patrick Wolleb  Vili Seppänen