1. The four components of a user story
Before I show real-life worked-out examples of user stories for different B2C digital products, let me share with you the 4 components of user story.
4 components of user story:
1) Identifier or ID
2) Title
3) Description
As a <>
I want to <>
So that <>
4) Acceptance Criteria
Given <>
When <>
Then <>
2. Template of a user story
Template of a user story
For more information on what is a user story, the Agile terminologies used in writing a user story, when do you write it, how do you write a user story, why do you write a user story, What is an Epic, what are the four components of a user story, what is the INVEST principle for writing a user story – you can refer to this article on What is a user story in Agile?
For your practice apply the above user story template and try the work on the below examples by yourself and then cross-check with the detailed user stories given below. You will be able to see areas that you covered as compared to those mentioned in the worked-out user stories below.
3. User story best practices
1) All user stories need to have these 4 components especially the acceptance criteria
2) You can also add a flowchart or simple wireframe to provide the visual aid to your user stories.
3) All the business rules and user behaviour need to be captured in the Acceptance criteria
4) If your Acceptance criteria have multiple items, then make a summary list at the start, so that the development team understands the scope of work easily
Let us dive into the first example.
4. Example#1: Pagination on a Jobsite page (www.totaljobs.com)
Scenario: On a Jobsite, a jobseeker performs a search, based on which a list of matching jobs are listed on the search results page. This Jobsite has implemented pagination as a mechanism to list 20 numbers of results on the 1st page and the rest of the results on consecutive pages.
Question: How do you write a user story for a pagination feature?
User story and acceptance criteria for pagination feature: Example of totaljobs.com
Example#1: Pagination on a B2C digital product (www.totaljobs.com)
Unique ID: EXUS-1
Title: Pagination on a search results page
Description:
As a jobseeker
I want to see page#1 results first and use pagination to navigate to other result pages of the search
So that I am easily able to browse through the list of results
Acceptance Criteria list:
/* Mandatory rule for 20 per page */
/* On click of pagination – Next */
/* On click of pagination – Previous */
/* On click of pagination – Number */
/* No pagination for result less than 20 */
Acceptance Criteria detail:
/* Mandatory rule for 20 per page */
Given I am on the search results page
When the number of results is greater than 20
Then I am given the option of pagination
And I can view the first 20 results on the first page
And next set of 20 results on every consecutive page thereafter
/* On click of pagination – Next */
Given I am on the search results page
And I have more than 20 results
When I click on the next icon
Then I am taken to the next consecutive search results page
/* On click of pagination – Previous */
Given I am on the second page of search results pagination
When I click on the previous icon
Then I am taken to the previous consecutive search results page
/* On click of pagination – Number */
Given I am on the search results page
And I have more than 100 results
And I see Numbers 1,2,3,4,5 on the pagination area
When I click on any of these listed numbers (e.g. 3)
Then I am taken to that specific page on the search results page (e.g. 3rd page)
/* No pagination for result less than 20 */
Given I am on the search results page
When the number of results is less than 20
Then there is no pagination displayed
And I can view the results on 1 single page
Strategic tip on user stories: Sometimes, when you already have this feature built-in some other area of your product or website; or you are using a pre-built plugin or a code from a library, then you needn’t define these acceptance criteria in full detail.
This is because your developers aren’t building it from scratch, so they don’t need full details. Instead, you can list the functionalities you expect from this ‘pagination’ feature which your development and testing team will ensure is available when they adopt this code.
Let us take a look at the second example.
5. Example#2: Sign Up on a website (www.trello.com)
Scenario: On a website, a user wants to Sign Up for free to utilise the services offered by that website. It could be content or features or something related to social. This project management tool website has an option to Sign Up for free and allows the user to use the basic features of the project management tool.
Question: How do you write a user story for Sign up feature?
User story and acceptance criteria for Sign-Up feature: Example of trello.com
Example#2: Sign-Up example on a B2C digital product (www.trello.com) – Happy path
Unique ID: EXUS-2
Title: Free Sign up for a non-subscriber on website
Description:
As a project manager
I want to sign up for free on trello.com
So that I can utilise the basic features for my project
Acceptance Criteria list:
/* Sign Up for free */
/* Sign-Up page */
/* Error checks during Sign Up by email address*/
/* Sign Up successful*/
Acceptance Criteria detail:
/* Sign Up for free */
Given I am on the home page of trello.com
When I select the option to Sign Up
Then I am taken to the Sign-Up page
/* Sign-Up page */
Given I selected the option to Sign Up
When I am on the Sign-Up page
Then I have the option to Sign Up by entering my Email address, Name, and Password
And I have the option to do Sign Up using social signing with Google, Microsoft or Apple
Sign-Up example on a B2C digital product (www.trello.com) – Alternate & Unhappy path
/* Error checks during Sign Up by email address*/
Given I am on the Sign-Up page
When I enter my email id, name, and password
Then system checks for correct & mandatory information being entered
And shows error messages as follows:
For Email address – “Please enter an email address”
For Name – “Please enter a name”
For Password – “Please enter a password”
/* Sign Up successful*/
Given I entered all details correctly on the Sign-Up page
When my Sign Up was successful
Then I am taken to the Welcome page to enter some more information
Strategic tip on user stories: This is a good point to break the user story and create a new user story such as the following:
User story for “Validating email address”
User story for “Social sign up using Google, Microsoft, Apple”