Acceptance criteria define what the system needs to be able to do in order to be considered 'complete' from a software development point of view. In essence, they're a set of tests that you conduct to confirm that your platform or app does what you want it to.
In this article, I'll look at what they look like and how you use them.
What are acceptance criteria?
For each requirement that you have for your platform or app, you should also have one or more acceptance criteria. These criteria describe how your system is expected to work - both in terms of a "normal" scenario, but also when a user does something that they shouldn't have.
A commonly used structure for framing your acceptance criteria is as follows:
<b>Given</b> [a particular scenario]
<b>When</b> [the following steps are completed]
<b>Then</b> [the expected outcome happens]
This handy approach ensures that you fill in each part for a complete statement of acceptance.
Examples of acceptance criteria
Let's say you're building a marketplace to connect freelancers with potential customers. For the search function, you might have the following acceptance criteria:
Given I am looking for a developer in Australia,
When I enter "developer" in the keyword search field, select "Australia" from the drop down field, and click the search button,
Then the search results screen displays with a list of developers from Australia, their rating, and their indicative hourly rate; with the results sorted by rating.
To go even further, your acceptance criteria may also include the following:
Given that I have searched for Australian developers,
When I click on the header of the hourly rate column,
Then the search results are sorted by hourly rate from lowest to highest.
You'll want to write acceptance criteria for each feature. This will ensure that you've covered all parts of the process. However, you may not cover every single scenario that occurs - simply because your acceptance criteria would go on forever!
How do you use them?
So now that you know what acceptance criteria are, how should you use them? Most obviously, you're using acceptance criteria to test what your developers have done. You're making sure that your platform or app works the way that you expect.
By having your acceptance criteria written out, you now have a systematic way to test - and retest your platform or app. This also allows you and your developers to know what you did if something goes wrong. If you just went into your system, started playing around, it would be very difficult to recreate the problem. With written criteria, you can repeat the test to see if the same thing goes wrong again.
Thinking about your acceptance criteria is also a useful tool to help you define what you want your product to do. If you start thinking about what your acceptance criteria might be when you write your requirements, it actually helps your mind work through the things that the product needs to do. This will give you a more complete set of requirements.
Acceptance criteria are an important part of the software and product development process. Along with giving you some help in writing your requirements and a systematic approach to testing, acceptance criteria also give you and your developers a benchmark for what you expect your system to be able to do. So, take the time to write out your acceptance criteria as they’re a critical component for building your platform or app.
Looking for a developer?
Get my 10 essential tips for hiring the right developer for your project.Download it now for free!