A not-so-long time ago in a galaxy that’s actually pretty close, developers manually deploy code…
Okay, it’s our monthly release weekend, and it’s time to deploy to production again.
We have a service window between 2 AM and 6 AM.
We need the principal developer of the new feature, the on-call developer, 3-4 infrastructure people, a database engineer, and a partridge in a pear tree.
When we get on the call, we will all watch as one person does most of the work. Then, one at a time, everyone will validate the change.
If we are lucky everyone will be done in a couple of hours.
But then!
A show-stopper bug shows up during validation.
Now it’s all hands on deck as we desperately try to roll back the changes before our service window closes.
Finally, everything gets rolled back and the feature goes unimplemented.
Maybe we’ll get it next time.
On Monday we’ll do a Root Cause Analysis (blame session) to find out whose fault this was.
That valuable feature, which we really need for the business, will be deployed next month.
Does this sound familiar?
Sadly this is still a common scenario for IT organizations.
It doesn’t have to be this way.
The answer?
CI/CD pipelines
Automating testing, integration, and deployment can dramatically improve the stability and velocity of your software development.
More to come on this…
Best,
Andre