For a project to be successful, the team must fulfil the requirements of the clients to the letter, and the solution must be relevant to market and industry needs. Every feature should be acceptable to the client and should match their expectations.
While all this sounds obvious, quite often in the real world, clients are very vague when explaining what they need. Lack of adequate and clear communication from the client might result in the team understanding the requirement in a wrong way because it was not properly articulated. They might then work on the feature over the duration of the entire sprint, only to find that it is rejected by the client when it is demoed at the end of the sprint.
This is where well-defined Acceptance criteria play an important role. By documenting the requirements clearly, and listing out what the client would deem acceptable, the team knows exactly what is expected of them. There is no ambiguity, and the work progresses smoothly.
So, what exactly are acceptance criteria in Agile? In this blog, we will walk you through why they are needed, the different types and structures of acceptance criteria, and some best practices in creating acceptance criteria.
In order to mark a User Story as complete, there are a set of predefined requirements that must be met. These requirements are articulated in the form of acceptance criteria. They are also at times referred to as the “Definition of Done” as they must be met in order to consider that a user story can be moved to the “Done” column.
Acceptance Criteria can be defined as the conditions that the product must meet, in order to be found acceptable by the user or the system. Each user story will have its own set of acceptance criteria, and just like the user story, they are also written from the perspective of the end user.
Something to note here is that the acceptance criteria must be defined before the team starts to work on the story and should be finalised and frozen. If the criteria change while the work is in progress, there is a chance of failure of the task due to lack of clarity.
The main purpose of acceptance criteria is to get complete clarity on the end users’ requirements.
When the acceptance criteria are clearly laid out, the team finds it easy to work on the user story and there is no ambiguity. Users are more likely to be satisfied with the results which will be in line with their expectations.
Some of the reasons why we need to define the acceptance criteria include the following:
Acceptance criteria are usually written by the product owners at the time of creating the product backlog, or by the team when they are fleshing out the user stories during the sprint planning event.
There are three types of formats and structures for acceptance criteria that are generally followed:
Let’s discuss each in detail.
This format follows the Given/When/Then format, like so:
Let’s understand this with an example.
Assume that you are using an online platform to study a course on Full Stack Development. You have a user id with a password and want to be able to recover the password in case it is forgotten.
Here’s how the User story might read:
As a user, I want to be able to recover the password to my account, so that I can access my account if I forgot the password.
There could be some cases where it is not possible to use the Given/When/Then structure. Such cases can be addressed with the rule-oriented Acceptance Criteria format.
Based on a set of rules that describe the behaviour of a system, certain specific scenarios can be drawn. These criteria are usually drawn up in the form of a bulleted list.
Let’s understand this with the help of an example.
User story: As a user, I want to use a search box to type a city, name, or street, so that I could find matching store options.
In this case, the basic search interface acceptance criteria might look like this:
While the two formats already described are the most common, if they do not suit your purpose, you can invent your own acceptance criteria. Each team can work with their own format, making sure that the criteria are written in simple and easy-to-understand English and cannot be misinterpreted.
While acceptance criteria appear to be easy enough to write, they often pose a challenge. Here are some best practices that you must keep in mind when writing acceptance criteria:
Here are some tips on how the Acceptance Criteria can be worded, to have the most effect:
Conclusion
The practice of writing acceptance criteria may seem deceptively simple but are in reality a very important step in the development process. They serve to clearly document the requirements and set the expectations for the completed feature from the perspective of the end user. By using the practices that we have explained in this article, you can ensure that the acceptance criteria are defined the right way and leave no room for confusion.
Leave a Reply
Your email address will not be published. Required fields are marked *