The hierarchy of Continuous Deployment

In this post I’m presenting a twist on Maslow’s hierarchy of needs, the hierarchy of Continuous Deployment. This version is based on the steps that are required to successfully implement Continuous Deployment (a step up from Continuous Delivery).

Maslow’s hierarchy of needs (also known as Maslow’s Pyramid) is a well-known theory in psychology, describing human needs in a particular ranking, with the most basic of needs at the bottom. It has since been updated slightly to deal with 21st century needs.

Maslow's hierarchy of needs

The hierarchy of Continuous Deployment

The needs are ranked in order of increasing scope, difficulty and abstraction.

Code

Trust. It all starts with trust. A development team must trust its code, and trust it well enough to continuously improve and adapt it. TDD, refactoring, continuous integration, a solid dose of code coverage (did I hear anyone say 100%?) and tons of quality metrics lead to a healthy, mature, predictable, and above all, trustworthy code base. Also, pair programming.

Functionality

Story done, feature delivered, high fives all around. Was it the right feature? Wait, what did we ship? Involve the three amigos and come up with scenarios, then test your implementation against those scenarios. BDD, DDD, UBL.

Architecture

A stable, fast build pipeline (preferably, as code) producing consistent artifacts. Respect the build. Verify that service A and service B are still on a first-name basis and talk the same language. Check that the code does not kill the database using some obscure SQL dialect which is no longer supported. Throw 10x the load at the system. Then 100x.

Infrastructure

Time spent firefighting a flaky system is time not spent delivering value. Ensure easily replaced, stable servers with plenty of horsepower. Load balancers left and right. Self-healing, autoscaling clouds for the win.

Continuous Deployment

Automate all the things. Push to master. No human intervention, no manual gates, no downtime during deployments. Fast iterations, happy business. More high fives. Or beer. Or high fives with beer.

Hierarchy of Continuous Deployment

Agree? Disagree? Let me know what you think!

In future blog posts I’ll explain some of the things required to climb all the way to the top of this hierarchy.

Michiel Rook

Michiel Rook is an experienced, passionate & pragmatic freelance coach, developer & speaker from the Netherlands. He loves helping teams and companies to develop better software and significantly improve their delivery process. When he’s not thinking about continuous deployment, DevOps or event sourcing he enjoys music, cars, sports and movies.

Leave a Reply

Your email address will not be published. Required fields are marked *