Friday deployments needn't be scary
It's that time of year again: the time when tweets like this are doing the rounds...
Truly terrifying pumpkin... ;) (h/t @DavidMcAlister8) pic.twitter.com/23u4mBb8k7— Amy Renee (@amyengineer) October 28, 2016
(Apologies for being unsure as to the original source of this post - it's been copied and re-tweeted so many times that it's hard to pinpoint the first person who posted it.)
The thing is, I don't believe that this is as scary as people make it out to be. If you're genuinely freaked-out by the concept of a Friday deployment, maybe you need to look closer at why that might be.
Just ship more often.
Even if you're not working in a continuous delivery environment, moving towards more frequent releases can severely reduce the scare factor of a Friday release. My team is currently releasing weekly, and while we generally opt to ship on other days of the week, there isn't anything inherently different to us about a Friday release. The more you get into the habit of shipping, the smaller your releases will be, and the less afraid you'll be of any arbitrary release.
If at first you don't succeed: deploy, deploy again.
Depending on your domain and your appetite for risk: what's the worst thing that can happen if a release goes wrong? Certainly, in some domains, there are potentially catastrophic answers to that question, but is that the case for your team? If you have a well-defined rollback process, or a responsive-enough development team who are capable of rolling-forward if an incident occurs, there needn't be any reason why you can't just patch a release, regardless of the day of the week.
It certainly helps if you're working within a team which has a pragmatic, humanist view of its members. I'm safe in the knowledge that, should an incident ever arise (and we've not had any notable "action stations" incident in the year since I joined, touch wood), team members will pitch-in to address the issue, and will be recompensed with time off in-lieu of the extra hours worked. It's one of the things that I most enjoy about a flexible (and remote) working environment - people are treated maturely enough that they are motivated to achieve the team's goals without feeling as if their personal lives have to be sacrificed. (For more on this, see my LinkedIn post: Adapting to a "remote-first" workplace.)
Saturdays are the least scary day to discover problems.
If we were to deploy on a Friday evening, and if (and that's a BIG if) there were ever a problem that went unnoticed, it would actually probably be the best day for this problem to occur. We produce software which is consumed by estate agents throughout the UK, and these agencies are still working at weekends, albeit with much lesser traffic than during the week.
Therefore, should we accidentally ship a release with a major problem, we'd still hear about it from our users on a Saturday - but the total number of users impacted (and total amount of revenue at-risk) would be much lower than a weekday. In hindsight, with this in mind, it's actually surprising that we don't always release on Fridays!
In conclusion: Analyse and embrace your fears.
If you're genuinely fearful of the aforementioned pumpkin, don't keep these fears to yourself! Talk to your team about what frightens you about a Friday release, and seek to address those concerns. I'm not advocating for always shipping at the end of the working week, but I think we need to overcome our fears of a Friday deployment and move towards an environment where we're capable of shipping value to our users at any time.
Enjoy the rest of your Halloween!