User story splitting is the process of breaking down a large user story into smaller, more manageable pieces that can be developed and tested incrementally.
In the realm of Agile software development, User Stories serve as a method to articulate the system’s functional requirements from the viewpoint of the end user. They are employed to identify and rank the features that are essential for the system to provide value to its users. However, the implementation of user stories often presents a challenge due to their large and complex nature. This is where the idea of user story splitting becomes relevant. Even when a user story is divided, the new stories should adhere to the following criteria:
The user stories should be of a size that allows for completion within a single iteration.
Every user story, when considered individually, should retain the characteristic of having quantifiable business value.
Article content
There are 2 main approaches:
Vertical slice splitting focuses on breaking down the user story into smaller parts that represent the different layers of the application. This approach aims to deliver a complete, end-to-end slice of the functionality, from the user interface all the way down to the data store.
Advantages are: Early feedback, clear understanding, reduced complexity, Deliver fast, motivation.
Horizontal slice splitting breaks down the user story into smaller parts representing different areas of the application. This approach is more focused on delivering a set of related functionalities, such as searching, browsing, and updating, rather than delivering a complete end-to-end slice of the application.
Disadvantages are: No E2E visibility, increased complexity, increased overhead, reduced focus & flexibility.
Article content
Some strategies for Vertical user story slicing
Workflow steps?
What steps does a user perform?
Are all steps necessary? (right now)
Can some steps be simplified? (at the moment)
Example: Payment order options - delivery? payment option?
Business rules
What business rules apply to this user story?
Are all business rules necessary?
Can simplified approach take place?
Example: Payment methods allowed during the purchase process
Happy/unhappy flows (a default scenario featuring no exceptional condition)
what does happy/unhappy flows look like?
Are all unhappy flows necessary?
Can unhappy flows be simplified?
Example: failures during payment order process and recovery
Input options?
Which platforms are supported?
are all platforms necessary?
Are platforms more complex than other?
Example: Web 3.0, Apple, Android?
Data parameters & types?
what data types supported?
What data parameters are necessary?
What parameters are relevant?
Example: Reports (tables graphs); only integer data is enough atm.
Operations
What operations does the story entail?
Are all operations necessary?
Can any operation be simplified?
Example: read/update/ etc..
Test cases, acceptance criteria?
what test covers the user story to verify?
What acceptance criteria apply?
Do we need all scenarios?
Example: some test scenarios could be very complex and covers different functional requirements.
Roles?
What roles involved?
All of them necessary?
Example: create? confirm?
To sum up, the decision to use Vertical Slice or Horizontal Slice user story splitting hinges on your project’s unique requirements and the development framework. Each method has its pros and cons, and the best fit will be determined by your stakeholders’ needs, the intricacy of the functionality, and your development process’s limitations. No matter which strategy you adopt, it’s crucial to consistently review and modify your user story-splitting approach to ensure it remains aligned with your objectives and continues to provide value to your users.














