In my work as an engineering leader, I spend quite a lot of time reading various reports—about technology, the IT market, trends, research papers, and more. Among the many publications, there are two I always eagerly await and read almost immediately after their release.
One is the annual DORA State of DevOps Report, which I briefly covered a few weeks ago. The other is Thoughtworks' Technology Radar, a semi-annual overview of recommendations related to tools, techniques, platforms, languages, and frameworks.
I won’t summarize the key takeaways from the recent Radar—its breadth means everyone should explore what’s most valuable to them. However, one particular subject caught my attention and brought a lot of thought: the practice of continuous deployment.
In today’s article, I invite you to explore what the true desired state of CI/CD processes could look like and what it means not only for technology but also for product and business stakeholders.
Here, you can find a PDF cheat sheet summarizing this article.
Continuous Deployment
Here’s a quick reminder. CI/CD stands for two practices:
Continuous Integration: This usually involves triggering automated tests and builds to ensure your changes integrate without breaking the system. Integration means combining code into an existing, shared codebase.
Continuous Delivery: This goes beyond CI by ensuring the integrated codebase is always in a deployable state. It automates the entire software delivery pipeline (build, test, package, and stage), so the software can be delivered to production at any time.
However, readiness doesn’t imply that deployment happens immediately. In fact, many organizations incubate their codebases for weeks—or even months—keeping them in a (relatively) deployable state before finally pushing to production.
That’s why there is a third practice built on top of CI and CD. Continuous Deployment extends Continuous Delivery by automatically deploying every change directly to production, delivering updates to users without manual intervention.
The latest Thoughtworks Radar recommends adopting exactly this practice:
We believe organizations should adopt continuous deployment practices whenever possible. Continuous deployment is the practice of automatically deploying every change that passes automated tests to production. This practice is a key enabler of fast feedback loops and allows organizations to deliver value to customers more quickly and efficiently. (...)
Push Everything to Production, ASAP
Many companies today adopt Agile practices—working in Scrum sprints, demoing developed solutions on a weekly or biweekly cadence, and splitting work into deliverables of up to one week.
The entire article and PDF/Notion/doc templates are available only for paid subscribers. You can use the training budget (here’s a slide for your HR).
Thanks for supporting Practical Engineering Management!