Engineering & IT

Keep runbooks from going stale

Infrastructure changes read against the runbook, with the edit already drafted.

Time
13 minutes
You work in
Documents
Connect first
GitHub

Before you start

  • GitHub connected
  • Runbooks in Documents

Runbooks rot in a specific way. They are written accurately, the infrastructure changes, and nobody updates them because the person who made the change did not know a runbook mentioned it.

You discover this at 3am, following instructions for a system that no longer works that way.

Get the runbooks somewhere readable

Into Documents. Whatever state they are in.

If several are stale enough to be misleading, that is worth knowing before you automate anything, and the first pass below will tell you.

Ask what changed against what is written

Prompt
Look at the infrastructure changes merged in the last two weeks, and read
our runbooks.

Tell me where a runbook now contradicts reality:
  which runbook, which step
  what the runbook says
  what the change suggests is now true
  how confident you are

Only report contradictions, not gaps. A runbook that does not mention a new
service is incomplete; one that tells you to restart a service that no
longer exists is dangerous. I want the second.

If nothing contradicts, say so.

The distinction between incomplete and wrong is the whole prioritisation. Every runbook is incomplete, permanently, and a report of gaps is infinite and unactionable. A runbook that gives an instruction which no longer works is a specific, finite, fixable problem, and it is the one that costs you at 3am.

Draft the edit, do not apply it

Prompt
For each contradiction, draft the corrected step. Show the current text and
the proposed text side by side.

Do not edit the runbook. If you are not confident what the new behaviour
is, say so and leave it for a human.

A runbook edited automatically is a runbook nobody has verified, and it will be followed literally under pressure by someone who assumes a person wrote it.

Run it after changes, not on a calendar

A fortnightly schedule is fine, but the better trigger is after a significant infrastructure change. That is when the contradiction is introduced and when whoever made it still remembers why.

Fix the confident ones, investigate the rest

The confidence field is doing real work. High-confidence contradictions are usually a renamed service or a removed step, and take a minute. Low-confidence ones are usually where the runbook encoded a judgement, and those want a conversation.

What good looks like

Runbooks that have not been actively wrong for a quarter, and a short list after each infrastructure change of what needs a sentence rewritten.

The measure is the next incident: did anyone following the runbook hit a step that no longer applies?