← All articles

Writing Acceptance Criteria That Actually Settle the Argument

By XNM Technologies · September 27, 2021 · 3 min read
Writing Acceptance Criteria That Actually Settle the Argument

A user story is a placeholder for a conversation, and acceptance criteria are where that conversation gets pinned down. They state the conditions a Product Backlog item must satisfy before anyone agrees it is finished. Without them, 'done' drifts: the developer thinks the feature works, the Product Owner expected something else, and the disagreement surfaces in the Sprint Review when it is most expensive to fix.

With distributed and hybrid teams now the norm after a long stretch of remote work, you can no longer lean on a quick hallway chat to clear up ambiguity. The story and its criteria have to carry the meaning on their own. Writing them well is one of the cheapest quality investments a team can make.

What good acceptance criteria look like

Acceptance criteria are not a design document and they are not test scripts. They describe observable outcomes from the user's point of view, not the implementation. They also are not the same as the Definition of Done, which is a confusion worth clearing up early: the Definition of Done is a shared standard that applies to every Product Backlog item, while acceptance criteria are specific to one story. Confuse the two and you either bloat every story with boilerplate or quietly let quality gates slip. A useful set of criteria is:

  • Testable — you can clearly say pass or fail, with no judgement call

  • Outcome-focused — what the user can now do, not how the code does it

  • Independent of each other — each criterion stands on its own

  • Free of solution detail — leave the 'how' to the Developers

  • Small in number — three to seven points, not a specification

A common, readable format is Given–When–Then: given some context, when an action happens, then a specific result follows. It is not mandatory — a plain checklist works too — but it forces you to name the precondition, the trigger, and the expected outcome.

A practical way to write them

  1. Start from the user's goal. Restate what the person is trying to accomplish before listing any conditions. If you cannot name the goal, the story is not ready.

  2. List the happy path first. Write the criteria for the normal, successful case. This is the spine everyone agrees on.

  3. Then add the edges that matter. Empty inputs, the maximum allowed, an expired session, a failed payment. Include only the edges that change behaviour, not every theoretical one.

  4. Make each criterion verifiable. Replace 'fast', 'user-friendly', or 'secure' with something you can check — a number, a visible state, a specific message.

  5. Confirm them with the team, not just the Product Owner. Developers and testers will spot missing cases and hidden assumptions before the work starts.

  6. Keep them separate from the Definition of Done. Criteria are unique to this story; the Definition of Done applies to every item and covers things like tests passing and code reviewed.

Common mistakes to avoid

Three traps appear again and again. The first is smuggling the design in — 'add a dropdown' is a solution, while 'the user can choose from the approved regions' is an outcome. The second is criteria so vague they cannot fail, like 'works correctly'. The third is letting the list grow into a mini-spec of twenty bullets; that is a sign the story should be split. There is also a quieter failure: writing the criteria once and never revisiting them, even when the conversation during the Sprint changes what the team has learned. Treat them as living until the item is done.

When acceptance criteria are clear, the Sprint Review stops being a negotiation and becomes a demonstration, and the team's forecast gets steadier because everyone is estimating the same thing. They also make it far easier to break a large story into smaller, independently valuable slices, because the criteria show you the natural seams. Spending ten minutes on them before work starts routinely saves hours of rework and the friction that comes with it.

If your stories keep sparking 'that's not what I meant' arguments at review time, XNM's program & project delivery advisory can help your teams write criteria that hold up and tighten the path from backlog to working software.