Writing for the 3am Reader: Clarity Under Pressure

Documentation & Runbooks

Chapter 3 · Writing for the 3am Reader: Clarity Under Pressure

Chapter 2 distinguished which document you're writing. This chapter covers how to actually write it — specifically for the reader this whole course keeps returning to: someone stressed, tired, possibly unfamiliar with the system, and quite possibly not the document's own author, trying to resolve a real problem right now.

The Core Design Principle: Assume the Reader Isn't You

Not your knowledge, not your context, not your calm state of mind. Write as if for a stranger under pressure — not a future version of yourself who remembers writing it and already knows what every step means.

Concrete Techniques

  • Short, imperative steps — "Run X," not "You might want to consider running X"
  • One action per step — never bundle multiple actions into a single numbered instruction
  • State the expected result after each step — so the reader can confirm they're actually on track before moving forward, rather than discovering something went wrong three steps later
  • No unexplained jargon or internal-only abbreviations — define anything non-obvious on first use, or avoid it entirely
  • Concrete over vague — "restart the nginx service," not "restart the web server," if there's any ambiguity about which service that actually means
  • Never assume unstated context — "obviously you'd check the logs first" isn't obvious to a stressed stranger; say it explicitly

Why This Matters Specifically at 3am

Stress and fatigue measurably reduce reading comprehension and increase the tendency to skip steps or misread instructions. A document that reads as perfectly clear to a calm, attentive author reviewing their own work may fail completely for a stressed reader encountering it cold. This isn't a claim that Chapter 1's own runbook was badly written in the first place — its failure was a different problem (Chapter 8's own territory) — but it's exactly why writing quality matters more, not less, in documents meant to be used under these specific conditions.

One Clear Path, Fallbacks Kept Separate

Avoid branching, conditional prose in the main procedure — "if this doesn't work, you could try either A or B depending on..." embedded mid-step slows down the common case for every reader, including the vast majority who won't need the fallback at all. State one clear primary path, and keep troubleshooting or fallback steps clearly separated out, not interleaved with the steps most readers will actually follow.

Before and After

SituationVagueClear
Restarting a service"Restart the service if needed""Run systemctl restart nginx. Expected result: no error output, and systemctl status nginx shows 'active (running)'."
Multiple actions in one step"Check the logs, and if you see errors, escalate"Split into two numbered steps — one for checking, one for escalating, each with its own expected result
Assumed context"Obviously, confirm the backup exists first""Confirm a backup exists for today's date before continuing. See Step 1."
"Obviously" and "simply" are worth cutting from every draft
If a step needs the word "simply" to sound easy, that's often a sign it's actually doing multiple things at once, or quietly skipping a prerequisite the reader hasn't been told about yet. Both words are a signal to go back and look more closely at the step they're attached to.

Hands-On Exercises

Exercise 1

Explain why stating the expected result after each step matters, specifically in terms of when a mistake gets caught versus when it doesn't.

📄 View solution
Exercise 2

Explain why embedding conditional branches ("if this doesn't work, try A or B") directly in the main procedure is described as slowing down the common case, even for readers who never need the fallback at all.

📄 View solution
Exercise 3

Explain why "simply" in a runbook step is treated as a warning sign rather than a harmless filler word.

📄 View solution

Chapter 3 Quick Reference

  • Assume the reader isn't you — not your knowledge, not your context, not your calm state of mind
  • Short imperative steps, one action per step, an explicit expected result after each one
  • No unexplained jargon, no vague references, no assumed unstated context
  • One clear primary path — keep troubleshooting and fallbacks separated out, not interleaved
  • Cut "obviously" and "simply" — both are signals a step needs a closer look
  • Next: Chapter 4, structuring a runbook properly — preconditions, steps, verification, rollback