Every single time I join a new agile team, I am asked the same thing - How do you write a user story?
There are many ways to achieve this. Here is mine template of choice. It is a User Story with Technical Use Case template. The hardest part everyone has when writing a story is defining Business Value. If your users wouldn't say it then it isn't business value. Keep that in mind.
As a/an [persona/user/role/consuming-system e.g. Eligible User]
I want to [do a function of the system e.g. Log in]
So that [business value e.g. Access my information]
Steps
1. This is an ordered numbered list of steps that represents the happy path through the workflow.
2. E.g. User enteres username and password.
3. E.g. User clicks the “Login” button.
4. E.g. User is authenticated and authorised and shown the Successfully Logged In page.
5. …
Post Conditions/Acceptance Criteria/Exit Criteria
Steps
4.1 This is an ordered numbered list of steps that represents the happy path through the workflow.
4.2 This included all error flow but not exception flow.
4.3 E.g. User sees the Login page with an unsuccessful message .
4.4 E.g. User is able to retry logging in.
4.5 …
Post Conditions/Acceptance Criteria/Exit Criteria
Steps
Post Conditions/Acceptance Criteria/Exit Criteria
This is an unordered list of conditions that must be met for the story to be complete.
There are many ways to achieve this. Here is mine template of choice. It is a User Story with Technical Use Case template. The hardest part everyone has when writing a story is defining Business Value. If your users wouldn't say it then it isn't business value. Keep that in mind.
User Story: @id
User Story: [One line description of the story. Keep it short as this is how the team will refer to the story. e.g. Eligible User logs in]
As a/an [persona/user/role/consuming-system e.g. Eligible User]
I want to [do a function of the system e.g. Log in]
So that [business value e.g. Access my information]
Main Flow
Preconditions/Entry Criteria- This is an unordered set of conditions that must be met before the first step can begin.
- E.g. The user is on the login page
- E.g. The user has already been added as a valid user with a username and password
- …
Steps
1. This is an ordered numbered list of steps that represents the happy path through the workflow.
2. E.g. User enteres username and password.
3. E.g. User clicks the “Login” button.
4. E.g. User is authenticated and authorised and shown the Successfully Logged In page.
5. …
Post Conditions/Acceptance Criteria/Exit Criteria
- This is an unordered list of conditions that must be satisfied in order for the flow to be considered completed.
- E.g. User sees the Successfully Logged In page.
- …
Alternate Flow 1
Preconditions/Entry Criteria- This is an unordered set of conditions that must be met before the next step can begin.
- E.g. User login was unsuccessful
- …
Steps
4.1 This is an ordered numbered list of steps that represents the happy path through the workflow.
4.2 This included all error flow but not exception flow.
4.3 E.g. User sees the Login page with an unsuccessful message .
4.4 E.g. User is able to retry logging in.
4.5 …
Post Conditions/Acceptance Criteria/Exit Criteria
- This is an unordered list of conditions that must be met for the story to be complete.
Alternate Flow 2
…
Alternate Flow 3
…
Exception Flow
Preconditions/Entry Criteria- This is an unordered set of conditions that must be met before the next step can begin.
- E.g. A system exception has been thrown.
- …
Steps
- This is an ordered numbered list of steps that represents what happens every time there is an exception in the flow that can’t be anticipated.
- E.g. User sees the Error page with an filtered error message
- …
Post Conditions/Acceptance Criteria/Exit Criteria