top of page

Communication Plan Template for Releases

  • Shawn West
  • May 13
  • 6 min read

Updated: Aug 20

A communication plan is easy to write and easy to write uselessly. The test isn't whether it covers the release. It's whether it holds up on the night the release goes wrong.

Aldermoor Health's auth cutover had a communication plan with eight rows: pre-announcement, integrator notice, support brief, on-call heads-up, status page during, status page after, leadership summary, internal engineering note.

All eight were sent, on time, to the right people. By its own measure the plan executed perfectly.

At 02:40 the cutover was rolled back. The plan had nothing to say about that. There was no row for we tried, it didn't work, you're back on the old version, and here's what that means for you. Someone spent ninety minutes drafting that message at three in the morning — and it went out four hours after customers had started noticing on their own.

The plan is judged on the worst night, not the good one

The announcement rows are the easy half. They're written in daylight, by someone with time, for an event that hasn't happened yet. They are also the rows that would mostly have been fine as an ad-hoc Slack message.

The rows that earn the artifact are the ones you write hoping never to send, because those are the ones you'll need when nobody has ninety minutes:

The row

Trigger

Why it can't be written live

Rolled back

Cutover abandoned, old version restored

Needs legal/support sign-off, and it's 3am

Degraded but up

Shipped, but something is slower or partly broken

Hardest to word — must be honest without sounding worse than it is

Running long

Window exceeded, still going

Sent while everyone is busy doing the thing that's running long

All clear

Verified stable

Easy to forget entirely once the pressure lifts

Aldermoor's plan had the last one. It had none of the first three.

The test you can run: open your most recent release's communication plan and count the rows that assume the release worked. If that's all of them, the plan covers the outcome you didn't need help with.

The field everyone fills in wrong is Timing

Almost every plan writes timing as a date or an offset — T-7d — chosen by feel, or by whatever the last release used.

That's backwards. A lead time isn't your deadline. It's the audience's, and its length is set by what they have to do with the notice.

Audience

What they must actually do

So the lead time is

If it's shorter

API integrators

Ship a code change through their release cycle

14–30 days

They break, and find out from their own customers

Support

Read a runbook and be able to answer "I'm locked out"

3 days

They improvise, inconsistently, on the busiest call day

On-call

Be awake, informed, and not mid-holiday

The shift before, plus the rota check a week out

The pager goes to someone with no context

Customers, nothing to do

Be unsurprised

24 hours is plenty

Mild annoyance, no real cost

Customers, must act (re-auth, re-consent)

Take a manual step

7–14 days, then a reminder

Support absorbs it as ticket volume

Notice the last two rows are the same people and different answers. The audience doesn't set the lead time; the action does.

The test: for each row in your plan, name what that audience does with the notice. If the honest answer is "nothing, they just need to know", the lead time is courtesy and can shrink freely. If the answer is an action, the lead time is that action's duration plus slack — and it is not negotiable downward because the release date moved.

Pre-drafting is the artifact, not the table

The table is a routing decision. The thing that saves you at 02:40 is text that already exists and has already been approved.

Approval is the slow part, and it's slow for exactly the messages you need fastest — anything customer-facing usually wants support, legal or a comms owner to look at it. At three in the morning none of them are awake.

So the four failure messages get drafted and approved with the plan, not during the incident. Aldermoor's now live in the release doc as filled text, with the variables marked:

  • Rolled back — what happened, what state customers are in now, whether they need to do anything, when you'll try again. That last clause is the one people forget, and it's the one that stops the follow-up questions.

  • Degraded — what specifically is affected, what still works, and what you're doing. Naming the working parts is what keeps it from reading worse than it is.

  • Running long — new expected time, and a commitment to the next update even if there's no news.

  • All clear — short, and sent to everyone who got any of the others.

Each of the four needs a named sender, not a team. "Support will send it" is how a message doesn't get sent at 03:00 — and if the owner column of your plan is a list of teams rather than people, that's the same gap the RACI exists to close.

The test: for your next release, ask who would approve the customer-facing rollback message. Then check whether they've seen it. If the answer is "they'd approve it in the moment", you have a plan that depends on a person being reachable at the worst possible hour.

Match the channel to whether it interrupts

Channel choice is usually treated as a style question. It's an interruption question: some channels reach people who aren't looking, and most don't.

A breaking API change announced only in a Slack channel has technically been communicated and practically has not — integrators don't read your Slack. A pager note reaches someone at 3am; an email doesn't. A status page reaches people who already suspect something is wrong, which makes it the right instrument during an incident and the wrong one for advance notice.

The rule that falls out: the more the audience must act, the more the channel has to interrupt. Advance notice of a breaking change goes by email and into the docs and to the account contact. A behind-the-scenes deploy goes in one channel and nobody minds.

The test: for each row, ask whether that audience would see the message without going looking for it. If not, and they have something to do, the channel is wrong regardless of how well the message is written.

When the full plan is the wrong instrument

Running this for every release trains people to fill it in without reading it, which is worse than not having one.

  • Nothing customer-visible and nothing to coordinate. One internal note is the whole plan. Writing eight rows for a routine deploy is how the template earns its reputation.

  • The change is behind a flag. The communication belongs at the flag flip, with the audience who'll actually notice — not at the merge.

  • A genuine emergency. You're communicating live, from the incident, not from a table. The plan's job here is only to have supplied the pre-drafted degraded and all-clear text.

  • The audience is one team you can walk over to. Coordination that involves nobody else is a conversation. Keep the change record — skip the plan.

Where it always earns its cost: anything with an external audience, anything where a rollback would be visible, and any migration with a cutover window.

The test: if this release were rolled back, would anyone outside the team need to be told? A yes means write the plan. A no means one line in the release notes.

What to change this week

Don't build the template. Take the plan for your next release and add one row: rolled back.

Write the actual message — not a placeholder — and get it approved by whoever would have to approve it at 3am. That single row is most of the value of the whole artifact, and it's the one nearly every plan is missing.

Then, for the rows you already have, replace each timing offset with the reason for it. Any row where you can't name what the audience does with the notice is a row whose lead time was guessed.

Aldermoor's plan is eleven rows now. Three of them have never been sent. The rollback row was used once, seven weeks later, on a different release — and the message went out nine minutes after the call, because it already existed.

bottom of page