Transcript
In the next eight short minutes, I'm going to show you how you can split any user or job story you come across.
Once you know the five approaches I'll share in this video, you'll know all you need to know to split stories.
From there, just get better with practice.
A few years ago, I was creating the Better User Stories course.
Because this course would cover everything someone needs to know to work effectively with stories, i knew it needed a module on splitting.
To create that module,I printed out over a thousand user stories I'd collected over 15 years.
For each story,i had the original story and the substories it had been split into.
I taped each Story onto a wall, grouping them based on how they'd been I was looking for the common approaches used in splitting all these stories.
I went through a variety of groupings trying to find the smallest set of approaches possible.
It would be easier to remember five splitting techniques rather than 20. The five I ended up with form the acronym SPIDER,
S-P-I-D-R, so spider without an E.
Let's take a look at each technique in the SPYDER acronym and see how you can use it to split stories!
The S stands for Spike.
A Spike is an activity a team undertakes to learn more about some backlog item.
Think of it as a research activity, but it may include prototyping or some experimental coding.
During a Spike, a Team isn't trying to develop new functionality.
Instead, they're developing new knowledge that will help them develop the functionality later.
We're here on YouTube, so let's use YouTube as an example.
Let's go back in time to when YouTube added automatic captioning.
The team doing that might have faced a build versus buy decision.
Do they use some commercially available software to generate the captions, or are their needs so unique that they need to develop something from scratch?
The way to settle that would be a spike to test out one or more commercially available captioning products.
Extracting a Spike makes the original story smaller, because some or all of the research included in the story is removed.
This is absolutely an essential way split stories.
So Extraction a Spikes is one of five splitting techniques you should use, but normally it won't be the first technique you'll reach for.
Our second splitting technique is paths, which is the pea and spider.
To split a story by paths look for alternate paths through the story.
Sticking with YouTube, let's use this story I can share a video with my friends.
When I click the share button in YouTube today, I'm shown 14 buttons I can click to share directly to various social networks.
I've also shown a link I could copy, and I am given the option to customize that link to start playback of the shared video at a specific time within the video.
That's 16 different paths through the I can share a video story.
I don't know that this story needs to be split into that many smaller substories.
That is for the team to decide based on the effort involved.
But with the path technique alone, we've identified 16 paths though the original story The eye in Spyder is for interface,
which refers to splitting a story by its interface.
The most trivial example would be on a mobile app.
You can split the story into an iOS and an Android version.
In other cases, splitting by interface can be done by having a simple version of the interface and a more involved version as separate stories.
This usually applies to a user interface Applying this to our YouTube video sharing example, as an alternative to splitting the story by paths,
we could have split out a basic sharing story like, As a video viewer, I can get a URL I share.
This could be implemented with no user interface other than a share button on the video page.
The pop-up with the 16 different ways of sharing wouldn't be needed if the only way to share is with a url.
A subsequent story could then be, as a viewer, I can share a video to various social media sites.
This could be done with a very simple user interface at first.
No fancy scrolling through a list of logos, maybe just a dropdown list text with the names of the social networks.
The final story, could, then, be something like, As a Viewer, i can choose the Social Network to share to by scrolling a through list showing the logos
of each.
Splitting by interface works because the ultimately desired feature can be built up to by progressively more detailed and better interfaces.
Let's move on to the fourth of the five techniques you can use to split any user story, and that is splitting the story by data,
which is the D in the Spyder acronym.
To split a story data do an initial version of a Story that processes only a subset of data that will ultimately need to be supported.
For example, YouTube allows you to upload a video in any of 16 different file formats.
If we're building a YouTube competitor, screw 16 file formats.
Let's start with one.
We're going to support one type of data.
All uploads need to be an MP4 format for now.
we'll add all the other formats later as separate stories.
Splitting by data is an effective approach.
Often there are a few types of data that add a lot of complexity.
Well, do an initial implementation that ignores the more complex data.
Get that implementation working, then add support for the complex more data You probably can't release the simpler version,
but you can still build it in that order.
I worked on a human resources system that did exactly this.
The system tracked who the manager was for each employee and would do things like route time off requests to that manager.
Most employees have one manager, but some employees had multiple managers.
We needed to support having multiple manager but, some stories were simplified initially by assuming each employees has exactly one managers Let's take
a look at splitting stories by rules, which is the R in our SPDR acronym.
Splitting using this technique involves relaxing some of the rules that a story will ultimately need to support.
Sticking with YouTube as an example, YouTube has some strict rules around including copyrighted music and videos.
If we're building a competitor to YouTube, our team's first story would be, I can upload a video so that others can watch it.
That story probably sounds simple, but there's a lot to it.
So in the first iteration, let's ignore the rule that videos can't contain copyrighted music.
We're not announcing our new YouTube competitor to the world after only one iteration anyway.
we'll have plenty of time after this first sprint to comply with our internal rule about not allowing videos with copyright music As another YouTube-related example,
suppose we want to prevent certain text from appearing in comments.
That could be swearing or maybe SQL commands that could mean hacking attempts.
Great idea.
Let's protect our users and our system from this type of text in Comments.
But an initial story of, as user, I can enter a comment on a video, can ignore that rule.
Doing so makes the story smaller so that it can fit within an iteration.
And support for the rule can be added a couple of iterations later.
Getting good at splitting user and job stories is an important skill.
With the short iterations used in Agile, it's helpful to have small units of work.
The five techniques we've covered here, splitting by spikes, paths, interfaces, data, and rules, should allow you to split any story.
In the comments, let me know what challenges your team has faced with splitting stories and share any other techniques you use to split.
If this video has been useful, click the Like button.
And if you're new to the channel, Click Subscribe so you don't miss out on future tips to help you succeed with Agile.
Thank you for watching and I'll see you next time.