πŸ—οΈContinuous Integration and Continuous Deployment

The beating heart of Agile and DevOps.

We're at the very basics of classic agile (and extreme programming) when we state that Continuous Integration (or CI) and Continuous Delivery or Deployment (CD) are things to strive for.

However, even 20 years later it still seems like these notions are pretty far away in many organizations. To be frank, then, the problem is as Atlassian writes, "agile isn't agile without continuous delivery".

For more on the relation between delivery and deployment (and more), read this article by Atlassian.

Thankfully, there's beginning to be some standardization around what high performance in technology delivery actually means, driven primarily by the DORA research program and related books like Accelerate, by Nicole Forsgren, Jez Humble, and Gene Kim.

You can take a simple test, called the DORA DevOps Quick Check to check your DORA performance metrics.

When it comes to our practices, we can make meaningful steps towards this by opting for smaller releases and having a limit on work-in-progress. This keeps the focus tighter, features smaller, and the release cadence flowing smoother and faster. Everyone wins.

🎯 Example: You can see that we have CI running in GitHub with our script located at .github/workflows/main.yml. Every commit runs the full pipeline and deploys new code to AWS. The other "soft practices", are somewhat less valid for a single author and can't be easily demonstrated.

CI/CD is nowadays 20% a technology problem (good and easy tooling is available in abundance) and 80% a people and process problem. Using DORA metrics and CI/CD, you can start setting a high mark on the objective delivery improvements that these tools and practices help enable when compared to traditional waterfall teams. This is of course contingent on you having a situation that allows such flexibility of operating (potentially) differently than your organization already does things.

Last updated