User stories are reminders of features, not full specifications. Avoid recording every detail up front because details change. We’ll capture the details later, when they matter.

When a story reads like a contract, it stops being a conversation. When it reads like a reminder, it invites one.

Follow the acronym “INVEST” as a quick check.

  • I.NDEPENDENT
  • N.EGOTIABLE
  • V.ALUABLE
  • E.STIMATABLE
  • S.MALL
  • T.ESTABLE

TESTABLE

Each story needs to be able to have one or more tests that can prove that the story is done.

For example, we can imagine a set of tests that can prove that a “Login” story is done; but we can’t imagine a set of tests to prove a “Usable” story is done.

The tests don’t need to be written right away, but we should have confidence that we will be able to define one or more tests later on when needed.