INVEST
INVEST is a checklist for judging the quality of a user story. The letters stand for Independent, Negotiable, Valuable, Estimable, Small and Testable. Bill Wake introduced the acronym in 2003. A story that meets all six can be scheduled in any order, discussed rather than dictated, delivers value on its own, can be sized, fits in an iteration and can be verified.
How INVEST Works
Each letter describes one quality, as set out in Bill Wake's original article:
- Independent. Stories should not overlap and should be schedulable in any order. Dependencies between stories make planning and estimation harder.
- Negotiable. A story is not a contract. It captures the essence of what is wanted, and the details are worked out in conversation between the people who want it and the people building it.
- Valuable. Each story must deliver value to the customer or user. Wake recommends vertical slices that cut through every layer of the system, rather than a story for each technical layer.
- Estimable. The team must understand the story well enough to estimate it, at least well enough to rank and schedule it.
- Small. Wake suggested that a story should represent at most a few person-weeks of work. Many teams today aim for something that fits comfortably in one sprint.
- Testable. If you cannot describe how to test it, you do not yet understand it. Clear acceptance criteria make a story testable.
The letters can pull against each other. Making stories smaller can create dependencies between them, and making them fully independent can make them too large. Teams use INVEST as prompts for discussion during backlog refinement, not as a strict pass or fail gate. In the same article Wake also proposed SMART (Specific, Measurable, Achievable, Relevant, Time-boxed) for the tasks a story is broken into.
Why INVEST Matters
Poorly formed stories cause most of the friction in delivery: work that cannot be estimated, stories that are done but deliver nothing usable, and items that stall because they wait on something else. INVEST gives teams a quick, shared language for spotting those problems before a story reaches a sprint. Many teams fold INVEST into their Definition of Ready.
INVEST Example
A backlog contains the item "Create the reports database tables". Run through INVEST, it fails on Valuable, because users get nothing from tables alone, and on Independent, because the reporting interface depends on it. The team rewrites it as a vertical slice: "As an account manager, I can see a list of last month's invoices with totals, so I can check billing before month end." The new user story includes just enough database, logic and interface to work end to end, can be estimated, fits in a sprint and has clear acceptance criteria.
INVEST vs. Definition of Ready
INVEST describes the qualities of a well-written story. A Definition of Ready is a team's own checklist for when any backlog item can enter a sprint, and it often includes items INVEST does not cover, such as design files being available or dependencies being resolved.