Dear software development manager,
Excellent software teams can deploy code multiple times per day. Deploying code multiple times per day helps make software teams excellent.
If your team(s) do not yet have this capability, then you are behind the 8 ball and rapidly falling behind your competitors.
More importantly, you might be the person standing in their way. I don’t mean to be rude, but I will say this unapologetically: if you participate as a manager/influencer/leader of software development in your organization and the teams are not yet capable of continuous integration and continuous deployment, then your priorities of late are questionable.
The tools exist, the techniques are known, and odds are nearing 100% that the technical staff you employ are ready for it (if not waiting for it). It is time to consider a renewed commitment to frequent, small-batch delivery. I recommend this statement be the focus on your very next team meeting:
“By mm/yy, we will continuously deploy code multiple times per day.”
If you’re reading this, and getting irritated with me, please know that I understand the common plight. You’re probably thinking:
- But our priority must be quality
- But our priority must be reliability
- But our priority must be security
- But our priority must be new feature development
- But our priority must be new customer onboarding
- We can’t make CI/CD happen until these other things are done
- …and so on.
Here’s the good news: the ability to deploy multiple times per day, as an overarching goal, gives context to those other concerns. In order to ship code multiple times per day automated testing must be employed (so regressions are not caused); the platform must address most security concerns (so applications don’t have to); the code repositories must be centrally managed (so automated deployment tools can be reused and centrally monitored). And so on for each concern you have about quality, reliability, security, and getting new features frequently into the hands of end users, your technical staff will solve in their pursuit of frequent delivery. Continuous Integration & Continuous Deployment (CI/CD) is made possible by creatively solving these difficult technical challenges.
Ask for commitment to this goal. Ask the technical members of the company to pursue the goal with all the passion, curiosity, and courage they can muster. The goal requires strong vision, deliberate and consistent effort, and incremental change — so support your teams and trust them to get the job done.