In the world of Software Development, the word 'Requirement' describes what the customer is looking for, what their goal is, or what they need to solve a specific business problem or need, which will ultimately help the organization boost its business.
Whether it's a product-based company that develops software products or a service-based company that offers services in the various types of software, the key point for all of them is the 'Requirement', and the success of the project or product is determined by how well the requirements are defined.
In this context, let's try to understand what user stories are and how to write them effectively to minimize ambiguity.
In Agile software development, a user story is a short description of the product functionality or feature from the perspective of the person who wants to use that functionality. A user story usually defines the smallest possible requirement and focuses on only one functionality or feature at a time.
The commonly used standard format in writing a user story is given below:
As a (user role/customer),
I want to (goal to be accomplished)
So that I can (reason of the goal)
Let's consider the case of a Supplier Portal that allows companies to manage and connect with 3rd party suppliers of goods and/or services. The web-based automated Supplier Portal handles registration, onboarding, and compliance, enabling suppliers to self-register and submit compliance and other required details such as VAT number, bank details, etc. Suppliers can raise invoices against the items/services they have provided and track their invoice status (pending, approved, rejected, paid, etc.).
Some user stories for the Supplier Portal from a Supplier's and Invoice Authorizer's view are given below:
You must rely on the INVEST acronym for assessing a user story's quality.
Independent: A particular user story must be developed independently of other user stories - Avoid introducing any dependencies or combining user stories.
Negotiable: User stories are not contracts; hence it would need the flexibility to be adjusted based on how much gets implemented.
Valuable: How is it beneficial or what value it provides to users, customers, and stakeholders
Estimable: The team needs enough information to estimate the efforts
Small: It should be sized appropriately for completion within a Sprint (includes testing)
Testable: Meets customer needs, is understood by all and is clear enough to assess if the story is done. (it should be easily unit and acceptance tested)
Acceptance criteria (sometimes referred to as the "definition of done") are the conditions that must be met in order for a user story to be marked as complete and be accepted by a user, a customer, or any other system. It is usually presented in the form of statements that can be verified as pass or fail. Each product backlog item or user story should have at least one acceptance criterion.
Good acceptance criteria should include
Here are some good acceptance criteria for the user story that we discussed above:
"As a Supplier, I should be able to register myself with the portal so that I can raise invoices."
In a nutshell, writing effective user stories and acceptance criteria is a win-win situation for both clients and development teams; it not only helps the team know exactly what they have to do but also keeps the client informed of the development process.