Home > Agile, BDD, TDD > User Stories

User Stories

Scrum Master, Product Manager, Developers and Testers collaborate to discuss about the requirements. How are requirements communicated?

STEP 1: REQUIREMENTS

Product Manager comes up with the requirements and communicates it in the form of user stories and UI prototypes. User stories generally follow the following template:

As a [role]
I want [feature]
so that [benefit]
 
For example:
As a user,
I want to login to the Gmail online email service by providing my username and password,
so that I can view my personal emails.
 

STEP 2: ELABORATION OF REQUIREMENTS

Tester elaborates the user stories are transforms into the test scenarios in BDD style. BDD generally follow the following template:

Given [context] 
And [some more context]
When [event]
Then [outcome]
 
For example:
Scenario 1:
Given that I am an end user,
And I am in the login screen of the Gmail online email service,
When I input valid username, valid password and click on the ‘Sign In’ button,
Then I should login to my personal mailbox and view my emails.
 
Scenario 2:
Given that I am an end user,
And I am in the login screen of the Gmail online email service,
When I input valid username, invalid password and click on the ‘Sign In’ button,
Then I shouldn’t login to my personal mailbox and system should display an error message “Invalid username/password”.
 
Scenario 3:
Given that I am an end user,
And I am in the login screen of the Gmail online email service,
When I input invalid username, valid password and click on the ‘Sign In’ button,
Then I shouldn’t login to my personal mailbox and system should display an error message “Invalid username/password”.
 
Scenario 4:
Given that I am an end user,
And I am in the login screen of the Gmail online email service,
When I input invalid username, invalid password and click on the ‘Sign In’ button,
Then I shouldn’t login to my personal mailbox and system should display an error message “Invalid username/password”.
 

STEP 3: REVIEW OF REQUIREMENTS

Product Manager reviews the test scenarios written by the testers and moves the user stories to the Estimation board, if he is happy with the test scenarios. If not, Product Manager provides feedback to the tester and the tester needs to update the test scenarios based on the feedback and provide it for the next review. This process continues until the Product Manager is happy with the test scenarios.

STEP 4: ESTIMATION OF REQUIREMENTS

To start an estimating session, the product owner reads a user story and describes a feature to the estimators, who should include team leaders of Development teams, UI Design teams and Testing teams. Each estimator is holding a deck of cards with values like 0, 1, 2, 3, 4 and 5, where the values represent the number of story points. When the feature has been fully discussed, each estimator privately selects one card to represent their estimate. All cards are then revealed at the same time. If all estimators selected the same value, that becomes the estimate. If not, the estimators discuss their estimates. The high and low estimators should especially share their reasons. After further discussion, they come up with the same value. Scrum Master records the stories points for the each areas (i.e., Development, Testing and UI Design) and places the user stories in Product Backlog.

STEP 5: ROLL-OUT OF USER STORIES FOR IMPLEMENTATION

Product Manager discusses with the Business/Customer, priorities the stories for implementation and rolls-out the user stories to the Implementation board.

Advertisements
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: