Nail-biting? Finger-crossing? The hokey pokey in reverse pentagram? While there are many potentially nerve-wracking moments in any software delivery lifecycle (SDLC), none can fill a team with white-hot fear quite like the release step. In this series of blog posts, we take you on an in-depth ride through software releasing’s greatest hits: “big bang” release, blue-green deployment and canary releasing. In this episode, we explore big bang – software’s no. 1 default strategy for over 30 years! (For our top pick, skip ahead to step seven).
Preparing your application environment - steps and coping strategies
Since you’re releasing in one big push, you’d think this approach would have only one step: release! However, because so much can and probably will go wrong, the “strategic” work in this approach is around managing expectations and building in contingencies for failure.
Step one: scheduling the “maintenance window”
Ideally, you want to plan the release at least 3 months ahead. Avoid scheduling it on a Thursday (gearing up for the weekend), Friday (to avoid working all weekend), Monday (to avoid making decisions on a Sunday), around public holidays or important personal anniversaries (for obvious reasons). Schedule “maintenance” to occur at 01:00, which gives you a solid 6 hours for damage control before the rest of the company checks their emails.
Step two: form your release committee
Next, start building plausible deniability through the “management matrix”. Form a release committee of senior people from across the company and impress on them the importance of getting the release “right”. Avoid including your manager or their manager. Most committee members will have no clue why they’re in the committee, but you can say “everybody was involved”.
Step three: prepare the rollout, rollback and communications plan
Get ready: prepare the rollout and rollback plans. Make sure the rollback plan works. Make sure that all pagers are charged and that the team wiki includes everyone’s up to date mobile numbers. Your rollback plan includes who you will alert and when. Your communications plan includes the content and timing for the “soft launch” email.
Step four: schedule a go-no-go meeting with the release committee
This sounds impressive and ensures that no one in IT is responsible for the release decision. Set the meeting for 22:00 the night before; by that time most people on the release committee will be “relaxed”. Tell them you're confident your team has everything handled, but ultimately leave the decision to them – the people most unqualified. Scheduling the meeting at 10pm also means their mothers, spouses or other gurus (family cat) will be on-hand to help them make the decision.
Step five: press the release button
There is anecdotal evidence to suggest that wearing a lucky release T-shirt helps. If something goes wrong: use your rollback plan.
Step six: the “soft launch” email
If your release performs…sub-optimally, make sure you send an email using the magic phrase “soft launch” to the rest of the company while they’re still in bed. Ensure paragraph one goes into enough technical depth to wear people down fast and stop them from caring. In general, the email should remind everyone that failure was expected, that they knew the release was coming, that it was a shared decision and that your best people have been up all night trying to fix it.
Step seven: look for a better strategy (spoiler alert: it’s policy-based release automation!)
If this sounds familiar it’s because, at Vamp, we speak from experience. Because most teams come to us seeking a more agile, iterative approach to release management, we’ll be examining the advantages and drawbacks of strategies like blue-green deployment and canary releasing in this series. We firmly side on canary as a best practice, but specifically, setting and automating policies around canary releasing gives you the flexibility to test and release a host of different versions of your service, at lower risk, with stakeholder buy-in up-front. No hokey pokey needed.
Join us next week for our no-nonsense examination of blue-green deployment…
….Or check-out our on-demand webinar 5 Release Strategies You Should Know for Continuous Delivery to learn exactly how to achieve the opposite of the “big bang” and release incrementally, safely, with confidence, at any scale.