User Story Creation - I.N.V.E.S.T. Criteria
I.N.V.E.S.T. Criteria
● Independent The user story should be self-contained, in a way that there is no inherent dependency on another user story.
● Negotiable: User stories, up until they are part of an iteration, can always be changed and rewritten.
● Valuable: A user story must deliver value to the end user.
● Estimable: You must always be able to estimate the size of a user story. Small User stories should not be so big as to become impossible to plan/task/prioritize with a certain level of certainty.
● Small: You must always be able to estimate the size of a user story. Small User stories should not be so big as to become impossible to plan/task/prioritize with a certain level of certainty.
● Testable: The user story or its related description must provide the necessary information to make test development possible.
User role, I want
User requirement so that
Desired benefit
Using our mobile lunch ordering app as an example of a good user story could be as a mobile customer, I want to create a profile so that future orders are faster to place. This is known as a functional user story, meaning it serves a function for the end user. You'll also write non-functional stories. Those stories help support the functionality the end users need without directly benefiting them. Here's an example.
Functional User Story - Serves a function for the end user
As a mobile customer, I want to create a profile, so that <future orders are faster to place>
Acceptance Criteria:
● Customer name is captured and saved.
● Customer email is captured and saved.
● Customer phone number is captured and saved.
● Customer password is captured and saved.
● Additional AC would ensure that invalid phone numbers, addresses, and passwords are rejected.
Non-Functional User Story - Work that supports users without directly benefiting them
As a developer, I want <to upgrade the database software to the latest version> so that <we have a supported product.>