Hi everyone! It seems timely, for no particular reason to talk about "Friday Deploys". The conventional wisdom tells us to avoid deploying software on Fridays like the plague. But as with most things, this advice isn't as black and white as it seems.
The Friday Deploy Dilemma
Let's dive into why Friday deploys are generally frowned upon. The biggest concern is the risk of running into issues over the weekend when the team is off duty. Imagine pushing out a release at 2pm on a Friday, only to have a critical error pop up on Saturday. With nobody around to handle the fallout, you're stuck with either a buggy product or a potentially lengthy rollback until Monday.
Time Zones and Their Tricky Impact
But here's where it gets tricky. When we say Friday, whose Friday are we talking about? I'm based in Australia, so a deploy on my Friday could very well be a Thursday for the rest of the world. This could mean that a Friday deploy for me doesn't carry the same risks as it would for someone in, say, the United States.
Who's Using Your Application?
Before you take the "no Friday deploys" advice at face value, consider who uses your application and when. If your user base primarily consists of business customers who clock out by the weekend, then a Friday deploy might not be as risky. After all, any issues that arise would likely come to light on Monday when your team and theirs are back in action.
Conversely, if you're serving a global audience, you're facing a 24/7 operation where time zones can really throw a wrench in the works. In such cases, sticking to a strict deployment schedule that avoids weekends might be more prudent.
Self-Healing Infrastructure: A Game Changer?
Another factor to weigh is your infrastructure's capabilities. If you've got systems in place that can auto-scale or auto-rollback without human intervention, a Friday deploy could be less daunting. With the right setup, you can enjoy your weekend without the looming fear of unexpected usage spikes or bugs.
The Counter Argument: Confidence in Your Software
Now, let's tackle the flip side of the argument. Some might say that if you're hesitant to deploy on Fridays, perhaps you're not confident enough in your software. And there's a grain of truth to that. Using "don't deploy on Fridays" as a crutch can lead to infrequent shipping and a culture of fear around releases.
QA and Continuous Integration: Building Confidence
It's essential to look at how you're testing and integrating your software. A robust QA process and continuous integration can bolster your confidence, ensuring that your software is ready to go live, regardless of the day. If you can't trust your software to work in all the scenarios you've tested, then it might not be ready for prime time on any day of the week.
The Takeaway
As you can see, the issue of Friday deploys isn't cut and dry. While the general wisdom holds true for the most part, it's not a one-size-fits-all rule. The key is to deploy software when you're fully prepared to support it post-launch. That means having the right monitoring in place and being ready to step in if things go south.
If human intervention is crucial for your operations, then indeed, Fridays might not be the best time for a new release. But if your systems can handle things autonomously, there's no reason your customers shouldn't enjoy the benefits of your work up to three days earlier.
I'd love to hear your thoughts on this. Do you stick to the no Friday deploys rule, or do you have a different approach? Let me know in the comments.
Thanks for reading!