The DevOps engineer's handbook

Continuous Delivery

Continuous Delivery is a method that improves the speed of software delivery. Its adoption leads to higher deployment rates, continual process improvement, and increased team happiness. Simply, Continuous Delivery is the best way to deliver software we know.

Here we explore how the automobile industry helped shape Continuous Delivery’s ideas, plus the principles and capabilities you need to adopt it.

Why Continuous Delivery owes a lot to car manufacturing

Continuous Delivery borrows some ideas from the lean manufacturing production method, popularized by post-war Toyota.

Before the lean method, car manufacturing was rife with financial risk and waste due to industry-standard processes.

For example, it was common for manufacturers to:

  • Build cars in huge batches for anticipated demand, so they always had stock ready for sale
  • Build parts in large numbers to reduce unit costs
  • Focus each manufacturing run on a single model to limit process changes
  • Only check vehicles for quality at the end of the production line

On the surface, each practice might make sense. Dig deeper, however, and you find flaws and risks.

Yes, you could argue you need stock to sell stock. But what if demand isn’t what you thought it’d be? Unsold cars and unused parts take up space. Even worse, they might rust on your lot. In either case, you spent time and money building something for nothing.

Likewise, building one model at a time might feel the safest way to ensure quality. Yet while committed to a production run, you can’t produce other models you might have urgent demand for.

And lastly, and probably the most wasteful option on the list, is performing quality assurance at the production line’s end. By the time your inspectors find faults, cars are complete, and your teams not only wasted their time and effort, but also your materials.

By adopting lean, Toyota adjusted their processes so they:

  • Worked to their actual demand, building only the cars and parts needed to complete orders
  • Developed new processes to change machine setups quickly so they could react to order variety
  • Empowered their staff to stop production and solve problems if they found problems from the station before

The result was less risk and fewer wasted hours and materials. Plus, particularly useful for moving the analogy over to DevOps, they found staff more engaged in their work.

Though Continuous Delivery isn’t a 1:1 of the lean manufacturing method, it’s what Toyota learned that’s important. Namely:

  • Work small and to demand
  • Improve your processes
  • Check quality throughout
  • Empower staff to solve problems

Software delivery experts have since evolved and expanded on these lessons. The result is 5 principles and 7 capabilities that will help you adopt Continuous Delivery.

Continuous Delivery principles

Continuous Delivery’s 5 principles should drive every decision you make in both its adoption and ongoing use.

The principles are:

  1. Build quality in
  2. Work in small batches
  3. Automate everything you can
  4. Always improve
  5. Everyone’s responsible

If you want to learn more about these principles, read What are the principles of Continuous Delivery.

Continuous Delivery capabilities

There are 7 capabilities your organization needs for a successful Continuous Delivery adoption.

  1. Continuous Integration (CI)
  2. Trunk-based development
  3. Continuous testing
  4. Monitoring and observability
  5. Loosely coupled architecture
  6. Database change management
  7. Deployment automation

If you want to learn more about each capability, read The technical capabilities of Continuous Delivery.

Deployment pipelines

A deployment pipeline is the mechanism to get a developer’s commits to environments.

A deployment pipeline uses the following tooling:

  • Build server or CI platform
  • Packaging service
  • Deployment software

If you want to learn more about deployment pipelines read What is a deployment pipeline.

Why Continuous Delivery has become widely used

Continuous Delivery is popular because it’s statistically proven to work. You can measure how well your company uses Continuous Delivery with established frameworks and metrics. Use the following resources for guidance:

For more information, read our Measuring Continuous Delivery whitepaper.

Categories:

Next article
Continuous Deployment