Good user stories follow the INVEST model created by Bill Wake (http://xp123.com/articles/invest-in-good-stories-and-smart-tasks/).
- Independent – can be done on its own
- Negotiable – describes the outcome rather than the specific implementation (leaving us room to negotiate)
- Valuable – delivers value (either business value or knowledge valuable – there must be an outcome!)
- Estimable – we have some idea of how much work it is (other than “a whole lot”)
- Small – a few person-days of work, so we can get it done in one Sprint
- Testable – there are concrete ways of knowing whether or not this is done and works as required
Often, we’ll find that our stories don’t meet these criteria. One particular challenge is making stories Small, because user requests are often for fully realized functionality. The challenge is to find a way to break up a large story into smaller, more easily deliverable units of work.
Note that this isn’t the same thing as Minimum Viable Product – that’s about figuring out the minimum set of functionality that is required for a request to be worthwhile. An MVP is still likely to include a number of stories.
There are a number of techniques for breaking down stories – a good summary is here: http://www.agileforall.com/2009/10/patterns-for-splitting-user-stories/
And an excellent flowchart is here: http://www.agileforall.com/2012/01/new-story-splitting-resource/