Skip to content

How-To Guide

A task-focused guide that teaches a reader to accomplish something they do not yet know how to do.

A how-to guide teaches a reader to accomplish a specific task they do not yet know how to do, walking them through the steps with enough context to understand what they are doing and why. The format earns its place not just by listing actions but by building the reader’s capability: it names prerequisites, anticipates where confusion is likely, and explains the purpose behind each stage. The goal is a reader who, having followed the guide once, could reproduce the task without the guide the second time.

The how-to guide occupies a distinct position among technical documents. A reference lists commands, parameters, or APIs for lookup by a reader who already knows what they need. A tutorial introduces a technology through a worked example. A how-to guide bridges the gap: the reader knows what outcome they want but has not yet worked out how to reach it, and the guide gives them the path with just enough explanation to make the steps stick.

Good how-to guides are sequenced by reader readiness, not by system architecture. Steps appear in the order a reader needs to take them, not in the order a developer would think to explain the internals. They acknowledge that readers may stop and restart, that prerequisites are often invisible to the author but critical for the reader, and that the step most likely to produce a stuck reader is usually one the author considered obvious.

# How to [accomplish specific task]
## Before you begin
- [Prerequisite: what the reader must already have or know]
- [Prerequisite: access, tool, or state required]
## Overview
[1-2 sentences: what this guide covers and what the reader will be able to do when done.]
## Step 1: [Action phrase]
[Brief explanation of why this step is needed.]
[Specific, concrete instruction.]
[What a successful outcome looks like at this step.]
## Step 2: [Action phrase]
...
## Troubleshooting
[Common failure point and what to do about it.]
## Next steps
[Where to go from here: related tasks, deeper reading, or what the reader just unlocked.]

Teaching a reader to complete a task they have never done before, when understanding what they are doing matters as much as getting through the steps. Onboarding new users to a tool, workflow, or process where capability-building outlasts the first session. Documenting infrequent tasks that readers will return to repeatedly until the steps are internalized. Bridging the gap between reference documentation and a reader who cannot yet use that reference independently.

Situations where an experienced operator needs to execute a procedure correctly under pressure without pausing to read explanations. Reference lookup, where the reader already knows what they want and needs only the parameter, option, or command syntax. Conceptual or architectural overviews where the primary goal is understanding rather than task completion.

technical-writer, friendly-mentor, instructional, encouraging, procedural

runbook: A runbook is an operational document written to be executed, not read for understanding. Its defining design constraint is that an operator who did not build the system must be able to complete the procedure correctly by following the steps sequentially, without needing to understand why each step exists. A runbook is not a teaching document - it is a decision aid that replaces the need to reason in the moment. A how-to guide is written for a learner who is building capability; a runbook is written for an operator who is completing a known procedure under pressure. Where a how-to guide explains, a runbook executes.

  • Steps named with action verbs and framed for the reader, sequenced in the order the reader takes them
  • A prerequisites section that names what the reader must have or know before starting
  • Brief explanations of why each step exists, embedded within or immediately before the instruction
  • Second-person prose addressed directly to the reader: “you will need”, “your output should look like”, “if you see”
  • A troubleshooting or recovery section addressing common failure points by name
  • A closing section that points the reader to what they can do next now that they have this skill
  • Steps sequenced by reader readiness, not by the organization of the underlying system
  • Omitting prerequisites and assuming the reader’s environment matches the author’s - Without stated prerequisites, a reader who fails on step one cannot tell whether the environment is wrong or the guide is broken. Unstated prerequisites are the most common reason a how-to guide works for the author and fails for everyone else.
  • Writing steps as bare commands without indicating what a successful outcome looks like or why the step matters - A list of commands without context produces a reader who cannot recover when output differs from expectation. Explaining what each step does and what to expect afterward builds understanding, not just mechanical completion.
  • Burying the first actionable step under a long conceptual orientation to the broader system - A how-to guide is task-oriented; long introductory explanations belong in overview or tutorial documents. A reader who came to accomplish something will abandon a guide that does not reach the first step quickly.
  • Sequencing steps by system architecture or developer mental model rather than by reader readiness - Steps arranged to match system internals frequently omit the setup work that is obvious to the author but invisible to the reader. Reader-first sequencing surfaces those invisible prerequisites as named early steps.
  • Over-explains - wraps every step in so much contextual scaffolding that the reader loses the thread of what to do; the guide becomes a lesson in the system rather than a path through a task - Keep explanations proportional to the risk of confusion at that specific step. A one-sentence explanation is enough when a step is clear. The explanation serves the reader, not the depth of knowledge the author wants to display.
  • Over-anticipates confusion - so many warnings, edge cases, and conditional branches that a reader on the normal path cannot find the main sequence; addressing every exception makes the common case harder to follow - Write the happy path cleanly, then consolidate exceptions in a troubleshooting section. Reserve inline warnings for genuine risks where a silent failure would mislead the reader. Conditional branches belong in separate labeled sections, not inside the numbered steps.
  • Over-scaffolds the reader to the point of condescension - restates what was just established, hedges every instruction with caveats, and treats the reader as incapable of any judgment call - Assume a reader who is competent in general but has not done this specific task. Write to that intelligence, not to inexperience. Reserve warnings for genuine risks, not for things that cannot realistically go wrong.
Write as a How-To Guide. Use the canonical sections: Before you begin (prerequisites), Overview,
numbered Steps, Troubleshooting, and Next steps. In Before you begin: list each prerequisite the
reader must have or know before starting - do not assume the reader's environment matches yours.
In Overview: one to two sentences stating what the guide covers and what the reader will be able
to do when finished. In each Step: name the step with an action verb, briefly explain why the
step exists, give the specific instruction, and state what a successful outcome looks like. In
Troubleshooting: name common failure points and what to do about each. In Next steps: point the
reader to related tasks or deeper resources. Sequence steps by reader readiness, not by system
architecture. Write in the second person. Explain enough that the reader understands what they
are doing, not just what to type.

See the How-To Guide template.

Technical Writer, Friendly Mentor, Instructional, Encouraging, Procedural

Skeptical, Confessional, Urgent

Runbook

How to run an async standup trial for a distributed engineering team

Section titled “How to run an async standup trial for a distributed engineering team”
  • You have a Slack workspace with a channel you can create or repurpose (#team-standup is this team’s name)
  • You have mapped each engineer’s local timezone and know what the current sync standup time translates to on their clock
  • You have a shared docs space for the trial retro and the Thursday agenda
  • You know who is currently on the meeting facilitation rotation - that person becomes the first on-call channel reader

This guide walks you through running a 30-day async standup trial. When you finish, you will have a running async standup channel with a posted template, a functional on-call reading rotation, a weekly working session replacing the old sync slot, and a retro framework for deciding whether to make the change permanent.

Step 1: Map the timezone cost of your current standup

Section titled “Step 1: Map the timezone cost of your current standup”

Before changing anything, you need to understand what problem you are solving. The sync standup imposes an unequal time burden across timezones, and that asymmetry usually stays invisible until you write it down explicitly.

List each engineer with their local timezone, then calculate what the current meeting time looks like on their clock. For this team, 9am Pacific is 9:30pm IST - a fact that shows up in attendance data as apparent disengagement rather than as a scheduling problem. The India engineers averaged 3.2 standup appearances per week while US engineers averaged 4.6. The gap is timezone cost, not commitment.

You have done this step when you can hand someone the timezone translation table and they understand immediately why the attendance numbers look the way they do.

Step 2: Set up #team-standup with the three-field template

Section titled “Step 2: Set up #team-standup with the three-field template”

Create a dedicated Slack channel and pin a message at the top with the posting template:

Shipped:
- <what landed since your last post>
In progress:
- <what you are actively working on today>
Blocked or at risk:
- <what is stuck, and who or what you need>

Also pin the house rules alongside the template: post by 10am your local time, @mention the person who can unblock you if you have a blocker, and write “nothing today” rather than skipping a field. If your Slack workspace supports it, configure a /standup shortcut that pre-fills the template.

You have done this step when at least three engineers can name the three fields without looking at the pin.

Step 3: Define the on-call reading rotation

Section titled “Step 3: Define the on-call reading rotation”

The async channel only functions if someone is accountable for ensuring blocked items get a response before end of business. That is the on-call reader role.

Assign it to the same engineers who currently facilitate the sync standup. Their new job: scan #team-standup between 10am and 11am Pacific each day, confirm that every @mention in a Blocked field has received a first response, and escalate anything unresolved. The role is triage, not editorial - they are not summarizing status or synthesizing updates. Budget 10 minutes per morning.

You have done this step when the first on-call engineer can explain their daily job without using the word “summarize.”

Step 4: Replace the sync meeting slot with a Thursday working session

Section titled “Step 4: Replace the sync meeting slot with a Thursday working session”

Do not eliminate the meeting time without replacing the coordination and social functions it carries. The async channel handles status; the Thursday session handles everything that genuinely requires real-time exchange.

Schedule a 60-minute session on Thursday at the least-bad time across your timezone spread. For this team that is 8am Pacific / 8:30pm IST - a late evening for IST engineers, but once per week is a different burden from daily at 9:30pm. Keep a rolling agenda in a shared doc (docs/thursday-agenda.md). If the agenda is empty by Wednesday 5pm Pacific, cancel and give the time back.

You have done this step when the Thursday session fills with real discussion and the team stops calling it standup.

Step 5: Frame the trial and set the retro date

Section titled “Step 5: Frame the trial and set the retro date”

A trial framing changes how engineers participate. When people know an experiment will be evaluated on explicit criteria, they engage with the process rather than waiting for it to be declared a success.

Send a team message naming the trial length (30 days), what you are specifically testing, the date of the retro, and where to drop observations mid-trial (docs/trial-retro.md). State clearly that if the retro data argues for reverting, you will revert. The trial only generates useful information if everyone believes you mean that.

You have done this step when someone asks “what happens at day 30?” and you can point them to the retro doc and the evaluation criteria without hesitating.

Step 6: Track post completion and blocker resolution week by week

Section titled “Step 6: Track post completion and blocker resolution week by week”

Collect weekly numbers so the Day 30 retro has something to compare. Two signals matter: post completion rate (posts received by the 10am local cutoff divided by posts expected) and blocker resolution time (minutes from @mention to first substantive reply in the thread).

This team’s Week 2 results give you a reference point: on-time post completion at 85.5 percent (47 of 55 expected posts), median blocker resolution at 18 minutes. Those are not targets - they are what this team established. Collect your own numbers and compare them to your sync standup baseline.

You have done this step when you can walk into the Day 30 retro with two to three weeks of weekly numbers and a qualitative data point from each engineer.

Posts are getting too long. If engineers are writing 200-word updates, the channel stops being skimmable in under 60 seconds. Share two exemplary short posts in the pinned message and reinforce the three-bullet ceiling at the Thursday session. The template fields are prompts for bullets, not headers for paragraphs.

The on-call reader is over their time budget. A 25-minute morning triage usually means blockers are surfacing earlier than the old sync model expected - which is actually the system working. Watch for another week before changing the rotation. If it persists, consider whether the on-call role needs a secondary backup rather than restructuring the whole rotation.

Engineers are running decisions in post threads. Async standup threads are for clarifications, not for the kinds of conversations that used to happen after standup. If you see a 10-message thread under a blocked item, add a house rule to the pin: threads for quick questions, everything else to a DM or Thursday agenda. Decision-weight conversations in a standup thread are a sign that the Thursday session needs a broader agenda or a lower cancellation threshold.

A timezone cluster goes quiet. Check whether the 10am local cutoff is achievable for that group. If their workday starts at or after 10am local, the cutoff is structurally impossible. Adjust the window for that cluster rather than treating low compliance as a participation problem.

At Day 30, run the retro against the criteria you set in Step 5. The quantitative data from Step 6 answers whether blockers are resolving faster and whether participation is more equitable across timezones. The qualitative signal from pre-retro 1:1s answers whether engineers feel the loss of daily sync contact.

If the retro supports making the switch permanent, record the decision in an ADR (see docs/rfc-async-standups.md for this team’s original decision record). Update the #team-standup pin to remove the trial language and archive the old sync calendar invite.

If the retro argues against it, you have 30 days of data explaining exactly what failed. Use it to shape the next iteration rather than reverting to the baseline without a plan.