As an Agile Coach I have to coach new Product Owners (some of them were working as Business Analyst or Project Manager or just Managers) which face the challenge to deal with user stories that is totally different than traditional requirements.
Because of that, I have invested a lot of time reading many books about user stories and blogs as well. One of the blog that attracted more was “Splitting user stories: the hamburger method” written by Gojko Adzic (@gojkoadzic) http://gojko.net/
I will present a brief summary of this blog but if you want to read the full blog don’t hesitate and go on http://gojko.net/2012/01/23/splitting-user-stories-the-hamburger-method/
Problems: Story is too big to split and estimate; business users don’t accept any breakdown proposed by the delivery team; team is inexperienced and thinks about technical splitting only; new project starts and no simple starting stories can be found
Solution: User Story Hamburger
Gojko thinks it works particularly well in situations where a team cannot find a good way to break things down and is insisting on technical divisions. It has the visual playful aspect similar to innovation games and it’s easy to remember. He called it the User Story Hamburger.
Step 1: Identify tasks
As a group, identify technical steps that would be involved in implementing a story on a high level. Breaking it down into technical/component workflow is OK. The tasks become layers in a hamburger bun – meat, lettuce, tomato, cheese – throw in some bacon for fun as well.
For example, if we’re working on a story to contact dormant customers by e-mail, the steps might be: query db for dormant customers; send e-mail to customers; retrieve delivery report; remove bounced addresses from the system; mark non-bounced as ‘recently contacted’.
Step 2: Identify options for tasks
Split the team into several small groups and ask them to define quality for each task, or what would make a particular task good. Then they should write down several options on different levels of quality on post-it notes.
Step 3: Combine results
Create a single hamburger on a big board. Ask representatives from each team to bring post-it notes and fill in the layers of your hamburger, briefly introducing what each note it. Identify duplicates and throw them away. Align task options from left to right based on the level of quality.
Step 4: Trim the hamburger
As a group, go through tasks and compare the lowest quality options with things next to them, based on how difficult it would roughly be to implement each option. Mark that information on the post-its. It might be worth breaking things down into relatively same-size technical tasks to do some simple comparisons. Think about throwing away lower quality items that would take more or less the same to implement as a higher quality option.
Step 5: Take the first bite
Now that you have a hamburger, decide how deep you’ll take the first bite. Discuss what is the minimum acceptable level of quality for each step. For example, manual sending might not be acceptable at all, because of the low volume. But sending e-mail once a month might be acceptable.
Step 6: Take another bite… and continue
From there on, any further bite should provide more quality, regardless of what you add. E.g. implementing initial bounced e-mail removal enhances the quality. So does more frequent e-mail sending. Use complexity comparisons between tasks to decide how deep you want to take further bites.
To conclude, this is a great approach but you should use only for the story is too big to split and estimate or the team is inexperienced.