During iteration planning, sometimes user stories need to be split so that they can be better handled. Here are a few ideas for doing just that.
- Split according to data boundaries:
- Try splitting based on the data needed to support the story, like region (i.e. northeast, southeast, etc.), instead of everything (i.e. U.S.).
- Split by operation:
- Make an effort to split stories into separate CRUD operations (i.e. create, read, update, destroy).
- Separate performance requirements:
- If a story is made complicated by specific performance requirements, split the functional and non-functional requirements into separate stories (i.e. Story 1: Make the chart screen; Story 2: Make it respond in < 1 second).
- Split by Priority:
- If a large story has pieces that have different priorities, split them into separate stories.
For more on when and how to split stories, I highly recommend reading Mike Cohn's book, Agile Estimating and Planning.