If you’re still deploying manually, you’re not just behind the curve, you’re actively putting your business at risk. I’ve seen this play out time and again, and the consequences can be catastrophic. Let me be clear: manual deployments are not a sign of professionalism or diligence. They’re a sign that your engineering practices are stuck in the past, and the risks you’re taking are simply unacceptable.
Let’s talk about real-world consequences. If you want a cautionary tale, look no further than the Night Capital Group. This was a company that went out of business in a single day due to a failed manual deployment. Yes, you read that right, one day. They had eight production servers, and because someone was following a manual script, they missed updating one server. A feature flag, originally used for a training scenario, was left enabled on that server. The result? Their trading software started buying high and selling low. By lunchtime, they’d burned through $450 million. Gone. All because of a manual deployment process.
Now, you might think, “That’s an extreme case.” But I’ve seen similar patterns in organisations of all sizes. Larger companies might be able to absorb the occasional failure, but if you’re a one-product business, a single mistake can be fatal. I once worked with a bank, this is within the last 15 years, mind you, where each of the five team members would log into one of five production servers and deploy their own code directly. For a real-time banking system. This isn’t just unprofessional; it’s reckless. The risk isn’t just on the engineers or even the managers, it’s a risk to the entire business.
If you’re a Scrum Master, this is what I call a “squirrel burger”, a big, messy problem that you can’t just ignore. It’s a whole stack of squirrel burgers, in fact.
So, what’s the alternative? Modern engineering practices. And let’s be honest, we’re not even talking about engineering excellence here, just the bare minimum. Automated builds. Automated deployments. This isn’t aspirational; it’s table stakes. If you’re not automating, you’re making yourself vulnerable to human error, and people make mistakes. Every. Single. Time.
I lost any faith in manual processes years ago when I was teaching a training class for testers. These were professional testers, using the Azure DevOps (well, back then it was TFS) test tools. The labs were straightforward: follow the steps, complete the lab, see how it works. Yet, every five minutes, someone would say, “The labs don’t work.” I’d sit down with them, and every time, they’d missed a step. If there’s any group in the world who should be able to follow a set of steps, it’s testers. But even they miss things. How many false positives are we getting in manual testing because someone just missed a step?
This is why you cannot rely on humans for repetitive, complex tasks. Automation isn’t just a nice-to-have; it’s a must. Everything that can be automated, must be automated. If it can’t be automated, refactor it until it can. End of story.
Here’s what you need to do:
- Automate your builds: Use tools like Azure Pipelines or GitHub Actions. Azure Pipelines, in particular, is fantastic for this.
- Automate your deployments: No more logging into servers and running scripts by hand.
- Implement automated gates: Gates don’t have to be manual. They can (and should) be automated checks that ensure quality and compliance.
- Automate your tests: Integrate test automation into your pipelines so you catch issues early and often.
- Remove manual steps: From the moment a developer commits code to the moment it lands in production, every step should be automated. If you need an approval step, that’s fine, but that’s a human in the loop, not a human doing the loop.
The only way to reduce the pain of deployment is to automate and iterate. The more you automate, the more frequently you can deploy. That’s how you move from monthly or yearly releases to continuous delivery, daily, weekly, even hourly releases. But you can’t get there without automation.
Let’s be clear: if you’re still deploying manually, your business is at risk. It’s not a question of if something will go wrong, but when. Modern engineering practices aren’t optional, they’re the minimum bar for professionalism in our industry. If you want to protect your business, build trust with your stakeholders, and deliver value reliably, automate everything you can. Otherwise, you’re just waiting for your own Night Capital moment. And trust me, you don’t want to be the next cautionary tale.