User Story Splitting – Split Conditions
This technique for splitting stories looks for conditional logic or words that combine conditions, such as “and”, “then”, or “or”. It’s a logical way to split stories, and it’s also a good practice (in my opinion). Doing this keep things atomic, simple, and easy to test.
An example might be:
As a food lover, I want to search for recipes by category, then view the details of a specific recipe, and print the recipe so I can make it.
This would break out into three stories:
This is a very common-sense approach to splitting stories. I am already in the habit of watching out for multiple stories masquerading as one, but if you’re new to writing user stories, then these might slip under the radar from time to time.
Questions to ask:
- Do you see any words that indicate the story is really a combination of stories, such as “and”, “then”, or “or”?
- Are multiple steps involved in the story?
- Do you see a list of items separated by commas (rather than using words)?
- Does it make sense to split the story into separate stories, or is there a legitimate reason for keeping a combination story as one?
The only case I could make for keeping a combination story together would be if the story was purposefully combined to make it right-sized for consumption by the team. An example might be if you had a bunch of tiny things that wouldn’t make sense as individual stories because they are too granular.
User Story Splitting – Major Effort
Another approach to splitting user stories is to do one story that will involve most of the “heavy lifting”, after which other stories can build upon the first story that was completed, but with much less effort.
Returning to my fictional Recipe app, perhaps I want to start by being able to search by recipe titles, then I want to add on additional ways to search, such as by category and major ingredients.
It might not even matter which one is done first, but the difficulty of programming the logic for the first one will in inherently make it easier to develop the subsequent options.
Questions to ask:
- Which one of the stories will be most difficult to do?
- Is there a logical reason to do one story before another?
- Is there a clear priority or preference of which one to do first, based on customer need or the most common use case?
- Are there some options that can be deferred?