INVEST is a mnemonic for six qualities that help teams write effective user stories. Coined by Bill Wake in 2003, it provides a checklist for evaluating whether a user story is well-formed and ready for development.
**The six criteria:**
**I - Independent**
Stories should be self-contained and not depend on other stories. Dependencies create scheduling constraints and make prioritization difficult. When stories are independent, the product owner can freely reorder the backlog based on business value.
*Anti-pattern*: "As a user, I can search (but only after the login story is done)"
*Better*: Design stories so they can be implemented in any order
**N - Negotiable**
Stories are not contracts or detailed specifications. They are placeholders for conversations between the product owner, developers, and testers. The details should emerge through discussion, not be locked in advance. The story captures the intent; the implementation details are negotiated.
*Anti-pattern*: A story with 30 detailed requirements leaving no room for discussion
*Better*: A story with acceptance criteria that leave room for the team to find the best approach
**V - Valuable**
Every story must deliver value to the end user or customer. Technical tasks, refactoring, and infrastructure work should be expressed in terms of the user value they enable. If a story has no clear value proposition, question whether it should exist.
*Anti-pattern*: "As a developer, I want to refactor the database layer"
*Better*: "As a user, I can load my dashboard in under 2 seconds" (which requires the refactoring)
**E - Estimable**
The team must be able to estimate the effort required for a story. If they cannot, it usually means the story is too vague, too large, or involves unfamiliar technology. The solution is to break it down, spike the unknowns, or have a conversation to clarify scope.
*Anti-pattern*: "As a user, I want the system to be fast"
*Better*: "As a user, I can search and see results in under 1 second"
**S - Small**
Stories should be small enough to be completed within a single iteration (sprint). Large stories (epics) should be split into smaller, independently valuable pieces. Small stories enable better estimation, more predictable delivery, and faster feedback.
*Anti-pattern*: An epic that takes an entire quarter
*Better*: Stories that each take 1-3 days of work
**T - Testable**
Stories must have clear acceptance criteria that allow the team to verify when the story is done. If a story cannot be tested, it cannot be verified as complete. Testability drives clarity: if you cannot write a test for it, you do not understand it well enough.
*Anti-pattern*: "As a user, I want the system to be user-friendly"
*Better*: "As a user, I can complete checkout in 3 steps or fewer"
**Using INVEST in practice:**
INVEST is most useful during backlog refinement and sprint planning. When a story feels wrong but the team cannot articulate why, running it through the INVEST checklist usually identifies the problem. It is a diagnostic tool, not a rigid rule - not every story will perfectly satisfy all six criteria, but awareness of the criteria improves story quality over time.