On-Call Rotation Template for Small Teams (2–6 People, Fair)
On-call breaks small teams in a specific way: not with one brutal weekend, but with quiet unfairness. One person ends up with every second shift, nobody says anything for three months, and then they resign during a release freeze. A rotation isn't a schedule — it's a fairness contract everyone can see. Here's the template that keeps 2-to-6-person teams intact.
The rotation math — copy this
- Shift length: one week, Monday 10:00 to Monday 10:00. Shorter shifts (daily) burn people out with context-switching; longer (two weeks) make the burden visible and personal. One week is the largest unit a person volunteers for without resentment.
- 2 people: alternate weekly, no exceptions, and both accept that paged incidents are shared by definition — the primary handles, the secondary shadows. 3–4 people: strict cycle A→B→C(→D) with one "flex" slot for swaps. 5–6: cycle plus a permanent secondary who takes escalations only.
- The count-back rule. Whoever took the last production incident skips the next rotation slot. This single line prevents the "Dave had three outages this month" drift that kills morale.
- Post-incident recovery. If you were on call for an incident that ran past midnight, you get the next business day's morning off — automatic, no negotiation. A rotation that doesn't budget for recovery is a rotation that produces false positives at 3pm.
- Swap protocol. Swaps are direct person-to-person with a message in the ops channel ("I take your Sep 22–29, you take my Oct 6–13"). The schedule document gets updated the same hour. No silent swaps — an undocumented swap is a gap in the pager chain, and gaps page nobody.
The one-page schedule table
| Week | Primary (pages first) | Secondary (escalations) |
|---|---|---|
| Sep 15–22 | A (had 2 incidents Aug — count-back: B takes handover load) | B |
| Sep 22–29 | B | C |
| Sep 29–Oct 6 | C | A |
That's the whole document. Add a column only if it changes behavior at 2am. The schedule lives where the pager lives — next to the handover template, not in a calendar nobody opens.
The handover ritual that makes it work
Rotation is 10% schedule and 90% handover. Monday 10:00, 15 minutes, five lines: what's paging right now, what's flapping, what changed last week, what to watch, who to call. The outgoing engineer speaks for four of those minutes. If handover is skipped, the rotation degrades into "everyone is on call all the time" — the exact state the rotation exists to prevent.
Rules that save small teams
- No permanent primary. The moment one person is primary more than 50% of weeks across two months, the rotation is broken — fix the roster, not the person.
- The 2am test applies to the schedule too: can any team member, at any hour, name who is primary right now without checking? If not, the schedule is decoration.
- Paid kits pay for themselves in one prevented 2am hour. Volume isn't the enemy of fair on-call — silent ownership is.
- Holidays are pre-assigned a quarter ahead. Volunteering for holiday shifts works once; assigned-and-traded works forever.
---
The Ops Starter Kit Vol. 2 ($27) builds on this rotation with advanced escalation chains, incident communications, and the postmortem loop that turns rotation pain into process — launch week: 30% off any paid kit with code HIVE-LAUNCH30 at checkout.