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.

Want to Contribute?

Read our contribution guidelines.

Signatories

Name Contact
Dave Farley https://www.linkedin.com/in/dave-farley-a67927
Bryan Finster https://www.linkedin.com/in/bryan-finster/
Ferrix Hovi https://www.linkedin.com/in/ferrix/
Justin Abrahms https://justin.abrah.ms/
Joe Arrowood https://www.linkedin.com/in/joearrowood/
Jerreck McWilliams https://www.linkedin.com/in/jerreck/
Istvan Bathazi https://www.linkedin.com/in/istvan-bathazi/
Sara Gramling https://www.linkedin.com/in/saragramling/
Tracy Bannon https://www.linkedin.com/in/tracylbannon/
Dana Finster https://www.linkedin.com/in/danafinster/
Patrick S. Kelso https://www.linkedin.com/in/patrickkelso/
Ben Link https://www.linkedin.com/in/benjamindlink/
Chris Kernaghan https://www.linkedin.com/in/chriskernaghan/
Chris Gossett https://www.linkedin.com/in/christopher-gossett-03b09347/
Joshua Barton https://www.linkedin.com/in/bartonjoshua/
Marc Boudreau https://www.linkedin.com/in/marc-boudreau
Courtney Kissler https://www.linkedin.com/in/courtney-kissler-0930681/
Andrea Laforgia https://www.linkedin.com/in/andrealaforgia/
Michael Nygard https://www.linkedin.com/in/mtnygard/
Aurel Estoup https://www.linkedin.com/in/aurel-estoup/
Emiliano Sutil https://www.linkedin.com/in/emiliano-sutil-77a2091b/
Jason Walker https://github.com/desktophero
Thomas J. Sweet https://www.linkedin.com/in/thomasjsweet/
Kelly Brownsberger https://www.linkedin.com/in/kellybrownsberger/
Andrew Marshall https://www.linkedin.com/in/ajmarshall2k/
Vilas Veeraraghavan https://www.linkedin.com/in/vilas-veeraraghavan/
Javier Lopez https://www.linkedin.com/in/javierlopezfernandez/
Javier Magana https://www.linkedin.com/in/javier-a-magana-98108/
Faraz Syed https://www.linkedin.com/in/farazsyed/
James Simon https://www.linkedin.com/in/jamesesimon/
Nathen Harvey https://twitter.com/nathenharvey
Jesse Getzie https://www.linkedin.com/in/jessegetzie/
Christophe Chaudier https://www.linkedin.com/in/cchaudier/
Rosalind Radcliffe https://www.linkedin.com/in/rosalind-radcliffe/
Austin Abro https://www.linkedin.com/in/austinabro/
Ron Forrester https://www.linkedin.com/in/ronforresterpdx/
David Hawes-Johnson https://www.linkedin.com/in/davidhawesjohnson/
Paul Moore https://www.linkedin.com/in/pdmoore2/
Shawn Button https://www.linkedin.com/in/shawnbutton/
Jesse Lin https://www.linkedin.com/in/jesse-lin/
Markus Mikkolainen https://www.linkedin.com/in/itmmti/
Alessandro Fardin https://www.linkedin.com/in/alessandro-fardin-61028b28/
James Moverley https://www.linkedin.com/in/jmoverley/
Michael Kingery https://www.linkedin.com/in/kingerymike/
Isaac Perez Moncho https://www.linkedin.com/in/isaac-perez-moncho-84922b6/
Igor Gassmann https://igassmann.me/
Wayne Gaskill https://www.linkedin.com/in/waynegaskill/
Chris Gallivan https://www.linkedin.com/in/christopher-gallivan-16a2b02/
Alexander Birk https://www.linkedin.com/in/alexander-birk-050625215/
Kaine Bent https://www.linkedin.com/in/ka1ne/
Andrew Ochsner https://www.linkedin.com/in/aochsner/
Stephen Magill https://www.linkedin.com/in/stephen-magill-2070a096/
Jordan Schwartz https://www.linkedin.com/in/jordanaschwartz/
Jean-François Lépine https://www.linkedin.com/in/jean-fran%C3%A7ois-l%C3%A9pine-6a122726/
Markus Arikan https://www.linkedin.com/in/marikan/
Jeff Dunn https://www.linkedin.com/in/jeffadunn/
Bob Winter https://www.linkedin.com/in/bob-winter
Azlam Abdulsalam https://www.linkedin.com/in/azlam
Jos Hendriks https://www.linkedin.com/in/jos-hendriks/
Nathan Nicholson https://www.linkedin.com/in/nathan-r-nicholson
William H. Kirk https://www.linkedin.com/in/whk/
John Boyes https://www.linkedin.com/in/john-boyes/
Patrice Corbard https://www.linkedin.com/in/patricecorbard/
Dirk Lehmann https://www.linkedin.com/in/dirk-lehmann-7712bb125/
Niko Kivelä https://www.linkedin.com/in/nikokivela/
Vu Ha https://www.linkedin.com/in/vuhacanada/
Srđan Đukić https://www.linkedin.com/in/srdandukic/
Andy Roth https://www.linkedin.com/in/andrewryanroth/
Peter Maddison https://www.linkedin.com/in/peter-maddison/
Cari Copeland https://www.linkedin.com/in/cacopela/
Kevin LaBranche https://www.linkedin.com/in/kevinlabranche/
Bjorn Edwin https://www.linkedin.com/in/bjornedwin/
Daniel Calle https://www.linkedin.com/in/danielcallesanchez/
Phillip Parker https://www.linkedin.com/in/phillipparkersoftware/
Savinder Puri https://www.linkedin.com/in/savinderpuri/
Michael Küsters https://www.linkedin.com/in/michaelkuesters/
Bryan Guinn https://www.linkedin.com/in/bryanjguinn/
Adam Hawkins https://www.linkedin.com/in/hi-adam-hawkins/
Guillaume Faas https://www.linkedin.com/in/guillaumefaas/
Leandro Zis https://www.linkedin.com/in/leandro-zis-140828191/
Jan Krag https://www.linkedin.com/in/jankrag/
Niko Heikkilä https://www.linkedin.com/in/nikoheikkila/
Tiago Gabriel https://www.linkedin.com/in/tgdraugr/
Ray Myers https://www.linkedin.com/in/cadrlife/
Andrew Khoury https://www.linkedin.com/in/drewkhoury/
Bosse Nyström https://www.linkedin.com/in/bossenystrom/
Mili Oručević https://www.linkedin.com/in/milio/
Albert Rigo https://www.linkedin.com/in/albertrigo/
Anders Nyvang https://www.linkedin.com/in/andersnyvang/
Christian Pendleton https://www.linkedin.com/in/christian-pendleton/