Tech for PMs — what is CI/CD?

Adil Dewan
4 min readJul 14, 2021

When I started my first product management role, “CI/CD” was amongst the myriad of acronyms I was drowning in. I knew that things like “CI tools” and “CI/CD pipelines” were embedded in our daily processes, but every time I asked a developer what they meant, I got a different response 🤔

That inspired me to write this short explainer — aimed at new or future PMs — where I hope to explain CI/CD with a good old food analogy. I would love your feedback!

TL;DR

CI/CD is a process which, as far as possible, automates the way that code gets from a developer’s computer into customers’ hands.

The two big steps to the process:

  • CI (continuous integration) which means automatically testing code each time a developer wants to make a contribution to the main codebase
  • Once CI confirms the code works well with the main codebase, the developer triggers CD (continuous deployment) which means releasing that code to customers right away and as often as possible (often several times a day)

As a PM, you should be wary that a slick CI/CD process is absolutely critical to delivering features quickly and bug-free. So you should ensure your team has the time and resources it needs to get this right.

Why testing your code is a lot like tasting your cooking 🧑‍🍳

Imagine you’re a chef cooking a dish for the first time.

A good way to limit the risk that your dish is a complete disaster is to taste regularly as you cook. In particular, as you add a new ingredient, you’ll want to taste your dish to check that you’ve added the right amount of that new ingredient.

If it doesn’t quite taste right, you can adapt immediately.

It goes without saying that this is MUCH better than finishing everything, finding out the dish doesn’t taste good and then wondering:

  • A) Which part of your dish went wrong and what you should do to make it right
  • B) Having to add a missing ingredient at the end, when it might be too late

Then once you’re happy the dish is ready, you’d serve it to your hungry customers right away.

Where CI / CD comes in

CI/CD automates the process of getting code from a developer’s computer into customers’ hands

To understand the role CI/CD plays, imagine that instead of a chef, you’re a developer. And instead of a dish, you’re making a website or a mobile app.

For a developer, CI/CD limits the risk of errors in the feature they’re coding, whilst making the whole process of getting it to customers really fast.

CI allows developers to automatically test their code after every few lines (or after every “commit”) just as the chef tastes their dish after each ingredient. If they find an error, they know it’s in those few lines of code, so they can easily fix it.

CD allows developers to deploy a feature to their customers really quickly. This allows them get faster and more granular feedback on their feature. In the nightmare scenario where a bug slips through the net and is released to customers, they know which part of the code the bug is in, making it easier to resolve.

What’s the main benefit of CI/CD?

It can literally save weeks of development time.

Having only made a few changes since your last commit, you can easily identify what the problem is and how to fix it. This is infinitely better than finishing the whole thing, seeing it doesn’t work and then trying to figure out where you went wrong.

Developers set up CI/CD “pipelines” which automate most steps of the CI/CD process. Pipelines make the whole thing go faster, giving the developer feedback on whether their commit passed or failed within minutes, allowing them to stay focused on their work.

How does this impact you as a Product Manager?

Everyone benefits from a slick CI/CD process. Developers, customers and PMs:

  • Regular testing after each commit will lead to fewer bugs & faster loading times, giving customers a better quality experience
  • Deploying features regularly means you can react to customer feedback quickly and often

How can you help?

Usually, developers own the CI/CD process. As a PM, you can help by prioritising time in the sprint for technical tasks which can be put toward making the CI/CD process as efficient as possible.

Developers can use this time to make the CI/CD process more:

  • Automated: reducing the amount of manual steps can reduce the chance of error and increase speed
  • Fast: each step shouldn’t take more than a few minutes. Any longer and it can be disruptive for developers
  • Rigorous: the necessary tests should be in place at each step so that bugs are caught and dealt with early

So that’s a very simple primer to CI/CD, but as you can imagine there’s loads more to it…

  • A good place to start is Justin Gage’s excellent blog Technically
  • Here’s a great article from Semaphore on what a CI/CD pipeline looks like
  • Lastly, check out these 100 second explainers by Fireship on YouTube — really concise and informative!

If you found this post useful, I’m planning to do plenty more (open to requests, too) so please hit the “follow” button to stay updated.

--

--