Story splitting techniques
Two different types of User Stories
Agile Coach Mike Cohn says that "almost every Story can be split with one of five techniques". He uses the acronym SPIDR for them.
Before we apply these techniques, we have to understand that there are two fundamentally different types of Stories.
- User Stories that are extremely large and cannot be split. These are very rare.
- Compound User Stories that can be split in smaller Stories
Following the INVEST principle, we know that good User Stories should be small. That way, the risk of not finishing them within a Sprint is lower.
To make them small enough, one of the following techniques can be used.
Five simple techniques for Story Splitting
A spike is a small prototypical implementation that's used for the evaluation of new technologies. It's used if the other methods don't yield good results.
If a User Story contains several alternative paths, separate User Stories can be created for some of them.
Example: Payment in a web shop via credit card or PayPal. In this example, the payment via credit card and the payment via Paypal can be split into two separate, smaller, Stories.
Interfaces are different device operating systems, like Android and iOS. For example, some Stories are only necessary for iOS. This is where the Story can be split into several ones.
Initial Stories only relate to a certain part of the relevant data. The rest of this data will be covered in future Stories.
Example: Tourist website of a city. The first user story describes the implementation of museums. The next one contains tourist routes and a third covers outdoor activities.
Rules contain business rules and technical standards. Some of them can be ignored in the initial Story.
Example: Every email address is allowed to buy a maximum of 5 cinema tickets online. The maximum amount of 5 will be ignored in the first User Story and implemented in the next one. The ticket restriction will not work as expected in the beginning, but the Story's complexity will be lower.
It's not always easy to split User Stories. This is one of those things that gets easier the more you do them. Because splitting Stories is an essential part of iterative and incremental development, you should start doing it sooner, rather than later. It will make your agile life way easier.