A methodology for slicing user stories vertically

Last post 05:23 am November 3, 2021
by Lyn Yang
2 replies
01:08 am November 2, 2021

We would like to recall the format of an user story: As a (role),I want to (behavior),So that (the value)

Example:As a user, I hope to search through some attributes of books, so that I can quickly figure out the position on the shelf of the book that I want.

OK, We expect to achieve slice user stories vertically, let's split this requirement firstly.

  • Let’s take a look at the first part of the sentence, As a (role). What can be split here?

As we can see, "The Role" is the only element that can be split. Thus, we could identify several details roles: Guest, Logged in user, Platinum Member, Administrator

  • Then, we go through the second part: I want to (behavior).

How to split the behavior? Usually, we focus on "what kind of behavior" or "how to execute the behavior". Here for this example, it's how to find (ie, by what conditions to find),

In this way, we can split it out with some examples: search by the name of the book, search by the ID of the book, search by wildcard, even search by personal preference

  • The last part, So that (the value)

Its value lies in finding the location of the book for a certain purpose. Maybe reading, show off, repairing etc.

After combining the split content, we have following stories:

  • Example 1: As a guest, I can figure out location of a specific book by the name , so that I can find and read it
  • Example 2: As a logged-in user, I can find information about a certain type of books based on certain wildcards, so that I can select the best one 
  • Example 3: As an logged in user, I hope to find some books based on my profile, so that I can find them effortlessly 
  • Example4: As an platinum user, I want to inquire about books that are only available to platinum users, so that I can find them and show off
  • Example 5: As an administrator, I want to search for broken books so that I can quickly find them and take repair measures

At this point, we have basically completed the vertical slice of user stories.

However, as a former developer, if someone do assign these tasks to me. I'm afraid I will kill the guy.

Why: The authorization management in this split is a horizontal function, and the vertical slice of user stories should be carried out on this basis.

The database infrastructure is also a horizontal function, without it, I can't do anything.

The building environment is also a horizontal function, without this, I cannot perform basic feasibility verification

Are we gonna build the foundations over and over again? No Doubt, No!

Thus, we need to admit that some foundations could not achieve vertical slicing.These basic tasks need to be superimposed horizontally. This type of work is called the enabler, initiator.

No alt text provided for this image

In the magnificent building below, the cornerstone at the bottom and the cover plate of the upper layer belong to these kind of works. similar to a system, they are the database infrastructure and the art design work.Then we discovered what is the characteristic of this kind of work: the extreme need for professional work, or rely on talent.

The method I have proposed so far is:

1. Through structural thinking, first brainstorm the roles, behaviors and values in the three-stage format of user stories.

2. Aggregate contents from the brainstorm, so that the structure comply with the MECE (Mutually Exclusive Collectively Exhaustive) principle

3. Then combine according to the respective structural items of the three stages

4. Audit the combinations, and filter out only the parts with actual user value

5. The technical staff conducts a basic horizontal split for each user story, and the sharing parts are the enabler, which can be done by the team or handed over to related professionals

07:39 pm November 2, 2021

We would like to recall the format of an user story: As a (role),I want to (behavior),So that (the value)

A user story is a placeholder for a conversation about a potential requirement. That's the format it takes. Everything else is a means to that end. I'd suggest that the syntax you describe is a convention to prompt such discussion.

However, as a former developer, if someone do assign these tasks to me. I'm afraid I will kill the guy.

I'd be tempted to kill him too, in revenge for having the arrogance to assign work to others and thereby murdering any hope of having a reasonable conversation at all. It's important to apply focus in user stories but I'm not sure a methodology can be applied. The more prescriptive we try to be the more we rob skilled professionals of their creativity.

05:23 am November 3, 2021

Hi Ian, appreciate for the comments and I am totally agree with your points.

My inaccurate description may lead to the misunderstand.

Definitely, the user story is a placeholder for further negotiation, that's the reason we facility the following brainstorming and combination during the refine meeting. PO and team members negotiate the details of the requirement and accept criteria.Also, the assignment here is actually picking up by team members after the refine meeting.

The methodology may effect on skilled professionals a little bit. However, for teams who are just starting to adopt scrum, it would offer much more focus, or a way to climb the mountain