6 Brilliant Ways To Slice User Stories

from-big-to-small-vertical-user-stories

In one of my blog post about Impact Mapping I was writing about a tool to evaluate your assumptions regarding your product. The result of this technique is a product backlog with big stories prioritized by business value. In this post I would like to show you 6 simple ways how to split your big user stories vertically.

Engineering is the art of decomposing big features or problems into smaller ones so that (agile) teams can start to tackle them. One of the biggest challenges is to slice these features vertically. Normally teams aren’t used to think about problem decomposition this way, so I hear a lot of comments like “The system is too complex” or “we need to ship this features as a whole or our users won’t get what they need”.

What is a vertical story?

Broadly speaking, there are two approaches for breaking down big features:

The first and traditional approach is the horizontal splitting and involves breaking down the features into the work that has to be done at architectural layers: one story for the UI, another for the database, front-end and back-end is split up into groups of sub-tasks. This may work, but fails actually at independent and valuable if we follow Bill Wake’s INVEST Model:

invest model for user stories

The second and more useful approach is the vertical splitting which makes more sense in an agile environment like Scrum. If a user story is split vertically, it is split in such a manner that the small story still brings some business value.

Why you should create vertical slices

Slicing up your stories vertically can speed up your feedback loop with your customer. You can measure results and react fast on the needs of your users. On a long-term you can avoid cost of delay significantly. If you’re using a scrum approach, each slice should meet your definition of done within one or two days.


Related books you may like:
1 User Stories Applied
Mike Cohn
2 Fifty Quick Ideas To Improve Your User Stories
Gojko Adzic (Author), David Evans
3 User Story Mapping: Discover the Whole Story, Build the Right Product
Jeff Patton and Peter Economy

Here are 6 easy techniques for vertical slicing:

Pattern #1 – Split into operations or actions

Split big stories into separate actions or operations the user executes:

As a user, I can manage courses, so that …

smaller vertical story:

As a user, I can view (read) a course, so that …
As a user, I can add a course, so that …
As a user, I can delete a course, so that …


Pattern #2 – Split based on business rules

Often, a user story includes (implicit or explicit) implementing different business rules. Usually there are variations or exceptions on the flow (happy versus alternate flows) based on specific input parameters:

As a user, I receive an electronic invoice right after registering for a course, so that …

smaller vertical stories:

As a german user, I receive an electronic invoice right after registering for a course, so that …

As an abroad user, I receive a physical invoice, so that …

As a user registering +2 participants together, I get to choose how my invoice is constructed (separate or comined invoice), so that …


Pattern #3 – Simplify business process (workflow)

Examine the business process or workflow and focus on the minimal, mandatory parts first to deliver a minimal viable end-to-end solution first. Add additional or optional steps in the workflow later.

As a user, I can publish courses online, so that …

smaller vertical stories:

As a user, I can directly publish courses online, so that …

As a user, I can publish courses including a marketing review, so that …

As a user, I can publish courses including a trainer review, so that …

Pattern #4 – Reduce options or complexity

Define the most simple implementation of a certain functionality first, adding more options or complexity later.

As a user, I can search for courses online, so that …

smaller vertical stories:

As a user, I can search for courses on keywords in course title only, so that …

As a user, I can also search for courses on location and date, so that …

As a user, I can also search for courses using exotic and complex criteria, so that …

Pattern #5 – Focus on major effort first

Investigate the (expected) usage of the product and focus on the most important subsets of data or information first. Add exceptional or less used information (data, details, other languages, other platforms or devices, etc) later.

As a user, I can pay my course online, so that …

smaller vertical stories:

As a user, I can pay my course using wire transfer only, so that …

As a user, I can also pay my course using Paypal, so that …

As a user, I can also pay my course using VISA or Mastercard, so that …

Pattern #6 – Deliver basic user interactions first

Assure working functionalities first, and only then add user stories for improving the user experience (data, validations, look & feel, performance, etc)

As a user, I can register for a course, so that …

smaller vertical stories:

As a user, I can register for a course providing my data in a very basic way and without data validation, so that …

As a user, I can register for a course and my registration data is automatically validated, so that …

As a user, I can register for a course on beautiful screens and provide my data in a very intuitive way, so that …

 

Further Links you might find interesting:


Further Links you may find interesting:
1 Patterns for Splitting User Stories
2 Splitting stories into small, vertical slices.
3 8 useful strategies for splitting large user stories (and a cheatsheet)

Questions? Critics? Suggestions? Don’t hesitate to leave a comment below!

Leave a Reply

Required fields are marked *.