As an Agile practitioner, you know that user stories are essential for delivering value and meeting customer needs. But often these stories become too complex or large to tackle in a single sprint.
This is where story splitting comes in. By breaking stories down into smaller, more manageable pieces, your team can ship faster.
In this post, we’ll explore the importance of splitting stories and walk through common techniques for splitting user stories like splitting by workflow, user personas, and business rules.
You’ll also learn when to split, common mistakes to avoid, and how proper story splitting leads to shipping higher-quality software.
What Makes a Good User Story?
Before we dive into techniques for splitting stories, it’s important to understand what makes a good user story in the first place. A well-written user story should follow the INVEST framework:
- Independent – The story stands alone and is not dependent on another story.
- Negotiable – Details can be discussed and changed later on between the team and the Product Owner.
- Valuable – The story delivers value to end users and supports business goals.
- Estimable – The team should be able to estimate the size and effort of the story.
- Small – Stories should be small enough to fit within a single Sprint.
- Testable – The story can be verified and validated when completed.
Additionally, a good user story clearly articulates the user role, what the user wants to achieve, and the business value behind it. Well-written stories use the “As a _ I want so that ___” template. For example:
“As a user, I want to reset my password so that I can access my account if I forget my login details.”
Stories should focus on the user need rather than technical details. And you’ll want to include user personas and workflow steps when drafting stories. The more detailed and well-articulated a user story, the easier it will be to split it later on.
What Is Story Splitting in Agile?
Now that you know how to write good user stories, let’s look at what story splitting entails.
Story splitting is the process of breaking large, complex stories into smaller, more manageable ones that your team can complete within a single Sprint.
Why split stories? Oftentimes, initial stories turn out to be larger and more complicated than anticipated. A story may require significant research, involve multiple user roles or touchpoints, or contain too many acceptance criteria.
Rather than tackle these big stories all at once, you can use story splitting to divide them into vertical slices. Each split story should still provide value to users.
For example, you could split a story to publish content on a website into separate stories for drafting content, scheduling content, and then approving content. The goal is to split the story into smaller parts that can get done in a sprint but still move the overall feature forward.
The end result of story splitting is a set of related, right-sized stories that allow your team to ship faster and collect feedback more frequently.
Importance of Splitting User Stories
Story splitting provides several key benefits for your Agile team. Let’s explore why it’s so critical:
Enables Faster Delivery
By splitting large stories into smaller ones, your developers can complete work and ship features in smaller increments. This speeds up the delivery of value to customers.
Rather than making users wait 6 months for a new capability, you can deliver a core workflow in the first Sprint, add reporting in the second Sprint, and refine it in the third. Such frequent releases are bound to keep the users happy.
Avoids Team Overwhelm
Taking on ill-defined, complex stories is demoralizing for teams. Having clear, well-scoped stories avoids this frustration.
Splitting reduces ambiguity and gives developers confidence they can complete work in the sprint resulting in greater focus, engagement, and velocity from your team.
Aligns to Agile Principles
Splitting stories reinforces core Agile principles like focusing on the essentials and delivering working software frequently.
It forces you to critically evaluate each story and break it down into the smallest set of features that enable user value. This eliminates unnecessary scope creep and complexity.
Enables Faster Feedback
Every story you complete and ship provides an opportunity for user feedback. The more you split stories, the faster you can validate new capabilities with real users.
Their feedback steers the project in the optimal direction. Splitting stories produces more incremental value and feedback loops.
Techniques for Splitting User Stories
There are several useful techniques Agile teams can leverage to split user stories effectively including:
1. Split by Workflow Steps
This involves analyzing the key workflow steps users move through to accomplish the goal of the story, then splitting the story into separate pieces for each major step.
For example, an online checkout process might involve steps for entering shipping details, selecting payment, and receiving confirmation. Split these into separate stories, while still preserving the overall workflow.
You should focus on the 20% of steps that provide 80% of the value, and leave less critical steps for future Sprints.
2. Split by User Roles
To use this technique, consider the different user roles involved and create separate stories for each role.
Take an example of a software used by doctors and patients. You can split stories from each persona’s lens. “As a doctor, I want to add patient notes” would be different than “As a patient, I want to view my visit summary.”
Segment by roles early on to avoid mingling perspectives in large stories.
3. Split by User Personas
Within the same user role, there may be different personas with unique needs.
An e-commerce site may have persona groups like casual shoppers, deal-seekers, gift purchasers, etc.
For this technique, split the stories to customize experiences for each persona.
4. Split by Variations in Data
Does the story handle different types of data as input? Extract stories to handle each data variation.
For a form submission, have separate stories for how blank fields, valid data, and invalid data are handled.
5. Split by Business Rules
If complex business rules make a story difficult, then consider stripping some rules out.
Split the story into versions with rules enforced versus not enforced. Then over time introduce more rules in incremental stories.
6. Split by Device or Platform
Consider splits by different devices like desktop, mobile, and tablet. Or different platforms like web, iOS, and Android. Factor in how the UX and functionality may vary across environments.
Other Splitting Techniques
There are other helpful techniques like split by component, data source, and positive/negative paths. Work with your team to analyze stories from different angles.
The key is to slice vertically so each split story retains end-user value. Avoid splits that separate horizontal layers of functionality.
When Should You Split User Stories?
With so many options for splitting stories, when should you actually do it? Here are some good opportunities:
- During Sprint Planning when the team is committing to work for the upcoming Sprint. If any stories seem too large, then split them then.
- When a story exceeds the recommended story point size for your team, which is often around 3-8 points.
- When you identify major dependencies between steps in the story flow, split these so they can be developed in parallel.
- When a core workflow forms the crux of value while other aspects are lower priority, split to focus on what’s essential.
- When the team will need to do significant research, exploration, or prototyping before building.
- If a story would deliver core value on one platform or device before others. For example, build the web version first before mobile.
In general, err on the side of splitting any complex story. It can be difficult to foresee all dependencies upfront. Splitting late is better than never.
However, be wary of splitting stories that are already granular enough for your team to execute on. Don’t split just for the sake of splitting. Use your judgment, but when in doubt, slice user stories vertically to downsize them.
Common Mistakes When Splitting User Stories
While story splitting provides many benefits, it’s easy to make mistakes. Here are some common pitfalls to avoid:
Not Involving the Whole Team
Splitting should be a collaborative process between the Product Owner, developers, QA, UX, and others as each role provides unique perspectives. Avoid having just one person split stories in isolation.
Splitting by Technical Complexity
Don’t split solely by the underlying components or architecture. While technical factors may inform splitting, the focus should stay on delivering user value.
Getting Stuck in Analysis Paralysis
Don’t over-engineer the splitting process. Slicing stories vertically benefits both users and the team’s workflow. However excessive slicing can lead to status quo paralysis. Know when to move forward.
Losing Sight of the Big Picture
It’s easy to fixate on individual split stories and lose the high-level narrative tying them together. Remind the team of the broader epic and goal as you split stories apart.
Including Specifics Too Soon
Only add technical details and requirements once the team picks up a split story for implementation. Otherwise, you risk overspecifying too early.
Not Providing Standalone Value
Each split story should ideally provide value independent of others around it. If stories only provide value combined, then reevaluate how they’re split.
Going Too Granular
Don’t split stories down to minute levels of detail. At a certain point, you increase overhead without additional benefits. Keep split stories at a reasonable size.
Conclusion
As we’ve explored, story splitting is an invaluable technique for Agile teams to master.
When you’re equipped with methods to break down large stories into right-sized pieces, you empower your developers to deliver incrementally and gather rapid feedback.
Splitting promotes focus, engagement, productivity, and ultimately faster value delivery to your users. Take time to hone your splitting skills, and soon your team will be able to take on any epic with confidence.
Keep reflecting on how to split better for future sprints and continue providing your users with the most business value.
FAQs
Who is Responsible for Splitting User Stories?
The 3 C’s of user stories are Card (user stories are often written on cards to facilitate planning and tracking), Conversation (the team has ongoing conversations to define user stories), and Confirmation (user stories must be confirmed ‘done’ based on acceptance criteria).
Can a Complex User Story be Split?
Yes, complex user stories can and should be split into smaller, simpler stories as large stories are difficult for teams to deliver quickly. Splitting them into vertical slices or separate steps retains value while making the stories more manageable. This enables faster delivery and feedback.