Skip to content

Telling and slicing user stories

Zeger Hendrikse edited this page Dec 19, 2023 · 5 revisions

Telling user stories

Example mapping is often used to come up with user stories that are void of technical specs.

At the same time, it provides

  • An indication of the complexity involved
  • Clear examples that can readily be translated in acceptance criteria ATDD
  • A shared understanding of the required functionality

Introduction Example mapping

Example Mapping is a technique teams use to break a big unit of work into smaller ones - often called story slicing. Example Mapping can slot right into a typical scrum team to help define stories and define agreeable estimations. -- How we do Example Mapping at Harver

Example mapping seamlessly fits in with TDD, as is discussed in that very same article and shown in the figure below.

ATDD

Example mapping in a nutshell

In an example mapping session, we can roughly identify the following steps:

  1. Define a user story and place it at the top of the board
  2. Define one or more business rules
  3. For each of the business rules, come up with one or more examples
  4. Write down any questions that cannot be answered by anybody in the room.
Example mapping

The image above is based on the Scrumblr board running in this replit repository. If you're entering from the main page, the board is called "Example mapping".

Note that if you end up with

  • too many business rules, your story may be too complex. You may want to arrange the business rules from left to right in descending order of priority.
  • too many examples, the business rule they pertain to may be too complex and hence may need to be split up further.
  • too many questions, the user story may still be too unclear at this point in time.

A Practical Example

As an example, another user story related to the reservation of train tickets is given below:

Ticket cancellation

Example mapping References

Slicing user stories

A user story is preferably INVEST, i.e.

  • “I” ndependent (of all others)
  • “N” egotiable (not a specific contract for features)
  • “V” aluable (or vertical)
  • “E” stimable (to a good approximation)
  • “S” mall (so as to fit within an iteration)
  • “T” estable (in principle, even if there isn’t a test for it yet)

Most of the time, the challenge is to make user stories as small as possible while at the same time keeping them valuable. This is also known as vertical slicing, as opposed to horizontal slicing, where user stories are sliced into pieces of technical work that either doesn't appeal to users or even worse, isn't understood at all by users.

In summary, story slicing boils down to the art of making the slices as thin as possible while at the same time retaining business value for each slice. This means that a typical user story involves all the "layers" that make up an application.

vertical user stories

Once a user story is small enough, i.e. multiple user stories can be picked up in one sprint, a user story may be split further into tasks. Tasks usually contain technical hints for the developers and make sure everybody can monitor the progress of a user story or, notice an impediment once a task "gets stuck" in the progress lane of the scrum board.

sliced user stories

Image credits: Elephant Carpaccio facilitation guide

Having small user stories is of utmost importance, as the value delivered is maximized as early as possible. This is reinforced by the fact that frequent and early delivery enables users to use to product much sooner thus providing the opportunity to give feedback as well as reprioritization requests to the product owner.

vertical user stories

Image credits: Elephant Carpaccio facilitation guide

Techniques for slicing stories

User stories may be split by

  • business rules/capabilities offered
    • user roles, e.g. customers, administrators, help desk employees, etc.
    • target devices such as mobile phones and web browsers.
    • CRUD boundaries
    • Happy flow and other paths
  • Zero/One/Many approach
    • What happens if we are dealing with nothing?
    • What happens if we are dealing with one thing?
    • What happens if we are dealing with many things?
  • Walking skeleton

References for slicing stories