How to Write Good User Stories? User Story Examples - Scrum Certification Training and Agile Coaching

write user story, writing user stories
  • LinkedIn
  • Twitter
  • reddit
  • Facebook

Why care to write good User Stories?

Similar to what the developers say - the best code is no code, the best User Stories are not written, they are told.

Mastering the art of writing good user stories isn't easy. Writing User Stories with just enough information that entices further communication and promotes collaboration is difficult. Most people tend to write more, considering useful User Stories to be mini versions of requirements documents.

Written well (read - written minimally), good User Stories become easy to understand and implement for the Scrum Team. Writing user stories that are small, and crafting user stories that are valuable, could in most cases solve one of the biggest challenges of the Scrum Teams - delivering shippable product increment every Sprint.

As discussed in my article becoming user-centric with User Stories - A User Story is a promise for further communication. Communication that should happen between the Development Team and the Customer or the Product Owner to create a shared understanding of the user's needs.

When crafted well, User Stories form the building blocks of a successful product envisioned by the Product Owner and desired by the customer.

In traditional product development environment, the Product Owner or Business Team would write detailed requirements they want to be implemented. The team would simply implement these requirements to the extent they understand it. Agile teams use User Stories and challenge this rationale.

User Stories require identifying who (a user) exactly will use the feature being asked to develop and specifying what benefit the user will get. This helps remove ambiguity and offers clarity in understanding the story (need) of a User.

A user story card may outline “why” - the benefit, “who” - the user and “what” - the feature or action.

The closest term for the User Story as used in Scrum is Product Backlog Item (PBI). PBI may refer to User Story, Feature, Technical Enhancement as well as change required in the feature.

What does Writing User Story mean for Scrum Roles?

In order to understand what makes a good User Story, it is important to understand what does the User story mean for everyone involved in writing+implementing user stories and their contribution.

Product Owner

For the Product Owner, User Stories are a way of putting user's needs, wish list items, hypothesis and everything else required of the product on a set of cards. The Product Owner collaborates with the development team to refine user stories. The PO orders these user story cards in order of the customer value, business priorities and risk for the development team to work on. User Stories also help the PO initiates the conversations with the Development team to create shared understanding about why, what needs to be implemented, who will benefit from it and how.

Development Team

User Stories open avenues for the Development team to get closer to the user's need, who will benefit from it and formulate how they would implement it to achieve the desired outcome. User stories also help with tracking the progress of the development within a sprint and create transparency within the Scrum Team. It helps plan the sprint.

Scrum Master

The Scrum Master ensures that the User Stories are transparent and that the team members and the Product Owner have a shared understanding of the User stories. If the Product Owner and the development team are bound by written contracts called requirements documents or the User Stories and are not collaborating, the ScrumMaster can facilitate communication and collaboration.

Scrum Master would take responsibility to help everyone understand the importance of keeping the user stories small, clear, concise, being flexible and allow for the most relevant user needs to emerge while discovery and development.

Most novice ScrumMasters end up doing just the opposite. They make sure the Scrum Team writes detailed user stories (kind of mini requirements documents), police around to ensure the electronic tool is filled with detailed descriptions, every possible acceptance criteria is listed and all 16 types of user story fields are filled.

User Stories encourages the Product Owner and the development team to collaborate with the user and to stay close to what the user needs. Scrum encourages collaboration by face-to-face communication. This makes using User Stories a logical fit (as a practice) with the Scrum framework.

 

Why do Teams Write Detailed User Stories?

I think the biggest reason for writing detailed user stories is - old habits.

However, many reasons compel teams to write detailed user stories such as:

  • Lack of Trust - Require sign-offs and approvals,
  • Traditional Mindset - Need proof,
  • Requirement Writing Experts, Business Analysts on the team,
  • Geographical distance between the PO and the Dev Team - Lack of transparency, need for approvals,
  • Regulated Environment - Healthcare, Banks, and Government domains require compliance with regulatory norms.
  • Client-Vendor Setup - Contracts, Need for approvals, CYA.
Writing User Stories
  • LinkedIn
  • Twitter
  • reddit
  • Facebook

Detailed written requirements minimize the need for collaboration within the team and actively prevent the customer requirements to emerge during the development.

Writing detailed user stories is the 1st step to stifle collaboration within the Scrum Team.

A relevant question I recently asked on our LinkedIn Page about long & written documents is worth contemplating:

What if the #requirements documents writers ??,? #status #report creators, #ppt creators and internal #diagrams creators were to seek feedback on the cost ?of writing each page v/s its usefulness ???

Artifact Transparency allows regular inspection. The Scrum Master may help the team analyze if a one-page document will meet the need instead of writing a 10-page report.

The Scrum Master is responsible to identify smells that induce waste, and prevent agility and help the Scrum Team address the root cause of such dysfunctions.

User Stories Templates

The need for templates and standardization stems from simple and repetitive work.

In Complex domains, it is essential for teams to adapt practices based on the context. Standardization of any practice or artifact would actively resist adaptation.

The Product Owner of a Scrum Team I was coaching, recently asked me - What is the best User Story Template used by Scrum Teams?

Well, writing better user stories is not dependent on the user story template used. More important than finding the best User Story template, is, every team must establish a common language that everyone on the team understands. If the essentials are met, the user story template used doesn't matter much.

A simple User Story template, that originated from Connextra and widely used by product development practitioners involves these three elements:

As a <<USER>>,

I want <<FEATURE>>,

So that <<VALUE>>.

This simple User Story template narrates the value for the user. The primary focus of writing User Story using this template should be the Business value that the Product Owner is trying to achieve through the implementation of a particular User Story.

An adaptation of above user story template, that makes the focus on Business Value explicit, is below version:

To realize <<VALULE>,

as a <<USER>>,

I want <<FEATURE>>.

When to write a User Story?

What is the pre-User Story phase?

A pre-user story condition could be a:

  • Hypothesis,
  • Feature Idea,
  • Customer Need,
  • Business Opportunity,
  • Change in Markets,
  •         Experiment.

Any of the above may trigger the need for a new user story.

There is no specific condition required to write a new user story. Anyone including Scrum Team members and Stakeholders may write a User Story when they find a need and share it with the Product Owner.

How to Write User Story?

Here are three characteristics that help craft effective User Stories.

1. Identify the Business Value:

To make a product successful, the Product Owner tries to maximize the business value delivered. In order to maximize the business value, it is important to identify: a- the Business Value, and b- the effort required, associated with a user story.

Knowing the Business value helps the Product Owner order the User Story with the highest Business Value at the top of the Product Backlog.

Example: For a new e-commerce website to launch, the highest Business Value will be when a new user is able to buy an item from the website. Let's take a closer look. Traditionally, the line of thought for the sequential functionality being made available would have been in the below sequence:

1a. New user can register on the website

User Story Example 1:

As a First time visitor to the website,

   I want to be able to register on the website,

   So that I can browse and buy listed products from the website.

 

1b. Registered User can Browse items listed

Writing User Story Example 2:

   As a Registered Website User,

   I want to be able to browse listed products from the website,

   So that I can make my choice and buy a listed product from the website.

 

1c. Registered User can add items to the cart

User Story Example 3:

   As a Registered Website User,

   I want to be able to add items to the cart,

   So that I can buy a listed product from the website.

 

1d. Registered User can make payment for the items added to the cart.

User Story Example 4:

   As a Registered Website User,

   I want to be able to buy listed products,

   So that I can use the product I buy.

 

Looking closely at the User Stories above tells us that the website visitor would not be able to make a purchase on the e-commerce website till the time User Story 4 is implemented and made available at the website.

The Human brain thinks sequentially, and step-by-step. It is evident from the above User Stories that the Product Owner writing user stories is looking at the website from the perspective of the end user and trying to depict his/her sequential line of thought.

Now if you wear the hat of a Product Owner, you must think about how can the highest Business Value be delivered early?

That requires prioritizing user stories in a way that the highest Business Value User Story finds its place at the top of the Product Backlog.

If you thinking out of the box and not sequentially as the human brain is trained to think, here is an alternate option to craft the User Story:

Writing User Story Example 5:

   As a First-time visitor to the e-commerce website,

   I want to be able to buy a listed product,

   So that I can use the product I buy.

 

This means that the First-time visitor to the e-commerce website should be able to make the payment as a guest user without having to register - User Story Example 1.

Does "Buying a product" has more value than "Browsing products" - User Story Example 2?

Sure, any day!

Adding chosen products to the cart - User Story Example 3 is a nice to have and allows the user to buy multiple items at the same time. However, being able to buy the product - User Story Example 5 without registering, browsing or adding the products to the cart has the highest Business Value.

2. Identify the “Who”:

It’s important and imperative to identify the Customer being served before you think of writing a User Story. One of the most common mistakes done by novice Scrum Teams is to generalize the User segment being served by a User Story.

Identifying a narrow and specific User segment being served by the User Story, helps reduce the size of the User Story.

The User Story becomes specific and clear as to who - which customer, is being targeted. Many Scrum teams use User Personas for their product and specify a particular persona while writing a user story.

Example: I had once worked on a capability that was available to all Credit Card users on the desktop. Our team was developing the set of features to make the capability available on an App for Tablet (iPad) and Mobile users.

The team started with this User Story format:

   As an App user,

   I want <<FEATURE>>,

   So that <<VALUE>>.

Now we had an option to split the user story as a “Mobile App User” and “Tablet App User”. The Product Owner prioritized the “Mobile App User” over the “Tablet App User” since that User Segment had higher volume and more business value. So, the PO chose to go with:

   As a Mobile App user,

   I want <<FEATURE>>,

   So that <<VALUE>>

Then, we had an option to re-write the user story in to two User Stories - as an “Andriod Mobile App user” and “iOS Mobile App user”. The Product Owner prioritized the “iOS Mobile App user” over the “Android Mobile App user” since that was a User Segment with even more business value. So, we chose to go with:

   As an iOS Mobile App user,

   I want <<FEATURE>>,

   So that <<VALUE>>.

In addition to this, we had Silver, Gold and Platinum Credit Card, holders. The Product Owner prioritized the “Platinum Credit Card holder” since that was a User Segment with highest business value. Our user story looked like:

   As an iOS Mobile App user holding a Platinum Credit Card,

   I want <<FEATURE>>,

   So that <<VALUE>>.

This is the level where the Scrum team was clear as to who was served by implementing the User Story.

Identifying a very specific user segment provides clarity, flexibility, creates shared understanding, reduces risk and results in improved ROI for the efforts.

 

3. Understand the “What”:

Communicating clearly “what” will be delivered as a part of the User Story is crucial too. This is the part of the User Story where the customer has an avenue to communicate his/her perspective on what s/he needs – feature, enhancement, etc.

Example: In another implementation that I had a chance to work on, we were implementing the approval system of a large Custodian bank. Can you believe they were dealing with Billions of Dollars yet the process was pretty much manual?

Anyways, using this Business Process Management tool, various departments involved would review and approve the application from a Sub-custodian bank to become a registered Sub-custodian to the Custodian based in the United States. The end goal was to create an automated system where:

  1. The interested Sub-custodian would apply online with all the details and documentation required by the Custodian, once that is done
  2. The Custodian would do multiple levels of review within the departments that existed in the Custodian bank.
  3. The application would then be sent to the regulatory body for their approval.
  4. Once approved by the regulatory body, the Custodian Bank would revert to the Sub-custodian requesting additional documentation required to formalize and close the registration process with the Custodian Bank.

As it appears, this was a huge task by itself. The team decided to break it down into bite-sized features. Although the team was going to use an off the shelf product with most of the functionalities required, yet there was a lot of customization required at each step.

With the array of features required to be implemented, we chose to first target the internal audience with the Custodian bank and the various departments within the bank whose approval was required as part of the registration process. We narrowed down the User to one department within the whole approval flow. We then decided to drop off the option of being able to attach the documents to the approval flow. Now the User Stories looked like:

   As a Registration team member,

   I want to be able to review the Sub-custodian application,

   So that <<VALUE>>.

 

   As a Registration team member,

   I want to be able to approve the Sub-custodian application,

   So that <<VALUE>>.

 

   As a Registration team member,

   I want to be able to reject the Sub-custodian application,

   So that <<VALUE>>.

 

These were easier to understand and also gave the Scrum Team a perspective on what’s being sought. Each User Story was written (crafted) in a way that it could be implemented within a Sprint. Breaking it down to the specifics removed ambiguity. Keeping the User Story minimal encouraged the Development Team members to go talk to the customers or the Product Owner.

Summary:

Nailing the “who”, “what” and “why” of the User Stories, making them minimalistic, small, transparent, and valuable makes them viable survivable experiments for the Scrum team.

Minimally but well-written User Stories allow the Scrum Team to learn fast and inspect and adapt, resulting in reduced risk and better alignment with customer needs.

 

Do you have a story to share that your team crafted well and delighted the customer?