This post is from the CollabNet VersionOne blog and has not been updated since the original publish date.
15 Ways to Split an Epic, a Team Exercise
Your Scrum Team has been hired by a physical fitness expert to develop a mobile device application to prescribe daily personalized exercise routines and diets for a wide range of people. The app should adapt the routines to users’ fitness goals, current health, age, gender, preferences, food allergies, lifestyle, etc.
The fitness expert is excited about all the possibilities of this app but promised a key user a working system in 30 days.
The main feature of the system will be this epic:
Generate Anyone’s Exercise Routine and Diet
Your mission, should you choose to accept it: Extract stories from the “Generate Anyone’s Exercise Routine and Diet” epic and write them out as new stories. For now it’s OK for the stories to overlap or contradict each other — we’re looking for 15 different ways to make an initial vertical slice. In each case, be prepared to explain why the extracted story is smaller than the original epic.
- Extract a smaller story by focusing on a particular user role or persona. (“Prioritize your users first, then your user stories.” — Jeff Patton) E.g.: “first time user,” “social networker,” “my mom,” etc.
- Extract a smaller story by substituting basic utility for usability. (First make it work, then make it pretty.)
- Extract a smaller story by splitting on CRUD (Create, Read, Update, Delete) boundaries.
- Extract a smaller story by focusing on distinct scenarios, such as the “happy path” (main success scenario) vs. alternate (exception) flows.
- Extract a smaller story by focusing on a simplified data set.
- Extract a smaller story by focusing on a simplified algorithm.
- Extract a smaller story by buying some component(s) instead of building everything yourself.
- Extract a smaller story by discarding technologies that increase hassle, dependency, and vendor lock.
- Extract a smaller story by substituting some manual processes for full automation.
- Extract a smaller story by substituting batch processing for online processing.
- Extract a smaller story by substituting generic for custom.
- Extract a smaller story by reducing supported hardware/OS/client platforms.
- Extract a smaller story from the acceptance criteria of another story.
- Extract a smaller story by substituting “1” for “all.” (NOTE: Look for implied instances of “all,” as the word often won’t be written explicitly.)
- Extract a smaller story by scanning for keywords such as “and,” “or,” periods, and other kinds of separators.
This exercise uses ideas by Bill Wake, Lasse Koskela, Mark Levison, and Jeff Patton. This is stuff I’ve seen work, but I’ve probably twisted their ideas in ways they may or may not agree with. To read what they have to say, see: