Skip to content

Checklists

  • I can state the problem in one sentence because if I can’t, engineering will build different solutions for different imagined problems.
  • Success metrics are explicit because “ship it” is not a measurable outcome and we need a shared definition of done.
  • Non-goals are written because scope creep happens through reasonable-sounding “small adds” that accumulate into a rewrite.
  • Requirements are testable because vague requirements create QA guesswork and post-launch blame.
  • Edge cases are considered because the edge cases are where users lose trust (and support load explodes).
  • The rollout plan is written because “we’ll just release it” is how you accidentally break your best customers.
  • Monitoring and alerts exist because if you can’t detect failure quickly, your users will detect it for you.
  • Support has a plan because every launch creates questions, and unanswered questions become churn.
  • Docs are updated because internal teams and customers will follow the docs, not your Slack messages.
  • A rollback plan exists because the only thing worse than a bad launch is being stuck with it.

Backlog refinement readiness (before the session)

Section titled “Backlog refinement readiness (before the session)”
  • The top items have a clear problem statement because refinement should clarify tradeoffs, not decode intent.
  • Each item has a success signal because you can’t estimate value if you don’t know what “better” means.
  • Dependencies are listed because hidden dependencies create fake confidence in timelines.
  • Acceptance criteria are drafted because engineering needs to know what “done” looks like to size the work.
  • Obvious unknowns are written as questions because unanswered questions become mid-sprint blockers.
  • The priority order is intentional because refinement without a priority is just brainstorming with estimates.

Stakeholder alignment before a big decision

Section titled “Stakeholder alignment before a big decision”
  • The decision to be made is written in one sentence because vague decisions create endless debate.
  • The options considered are listed because “only one option” usually means we didn’t do the thinking.
  • The tradeoffs are explicit because alignment comes from shared sacrifices, not shared optimism.
  • The decision owner and override path are clear because confusion about decision rights creates politics.
  • The communication plan is ready because a good decision still fails if it’s announced badly.
  • We compare outcomes to the pre-launch hypothesis because without that, we can’t learn — only celebrate or blame.
  • We review guardrails because many launches “win” the primary metric while quietly breaking something else.
  • We capture what surprised us because surprises are the seeds of better systems and better future estimates.
  • We document the biggest user friction points because the next iteration should target pain, not aesthetics.
  • We record operational issues and fixes because reliability work is easier when the history is written down.
  • We decide the next action (iterate, rollback, or pause) because post-launch reviews without decisions are just therapy sessions.