INVEST
Good User Stories can be measured against a simple set of criteria: Independent – Stories should not rely on each other. Dependencies between Stories limit the flexibility of both the Product Owner and Developers. The Product Owner should be able to ask for Stories in whatever order they value.
Negotiable – The Story is not a contract. It is an invitation to have a conversation around the actual need. It gives the Product Owner and team a chance to delay unnecessary decision-making until implementation begins. It allows the team to discover new options right up until they’re done.
Valuable - Each Story needs to deliver some small sliver of value all on its own. In other words, the customer has to be able to see the value. This pushes us towards slicing our work into vertical chunks and not technological layers. In addition, this prevents writing “Infrastructure” User Stories. Scrum and XP take the view that Infrastructure should only be built to solve the current problem.
Estimable - If the team, through lack of experience, can’t estimate a Story, they shouldn’t fake it, and instead, they should run a short experiment to gain that experience. These experiments are called Spikes.
Small - Stories at the top (approximately the next 3 Sprints) should be small - so small that the team should be able to get 5-10 similar-sized Stories completed every Sprint.
Testable - It is clear how you will test this
Agile Pain Relief Blog Entries
- Lifecycle of a User Story
- Scrum by Example – How to Deal with Bad User Stories as a ScrumMaster
- Technical User Stories or The Team Try to Pull a Fast One on the Product Owner
- Scrum By Example – Story Splitting Fun
- Story Slicing, How Small is Enough?
- Story Splitting – a Play – “Spike Sherman”
- More Notes on Story Splitting