Acceptance criteria is what every test and the final product should be checked against.
Imagine an architect designing a skyscraper…
Without knowing why it’s being built or who will be using it.
And then suppose the construction company takes this uninformed blueprint and begins building.
Do you think the skyscraper will be a success?
Or a failure?
Most likely, it would be entirely useless and have to be torn down and rebuilt from the blueprint on up.
That’s exactly what can happen to your software.
Without knowing who you’re building the software for, it won’t be well-received.
Without knowing what you need to include in the software (and be able to tell when you have everything you need to satisfy customers), it won’t be functional.
Which means you need two things:
We’re going to cover both today, including why they’re important, how to construct them, and how to know when you’re doing it right.
Let’s start with user stories.
A user story is the primary first step to excellent software development. It’s often used for teams practice the Agile framework, but it’s essential regardless of your development methodology.
The purpose is to fully understand what problem the software is solving, if it’s a problem worth solving (that is, if people want it solved), and how exactly the software will solve the stated problem.
User stories are typically written like this:
As a (type of user), I want (some action) so that (goal/result/value is achieved).
Without this knowledge, you really can’t begin any meaningful software development. It would be divorced from the end user – the most important person in this equation.
User stories should be your go-to method for identifying user needs.
The goal is to ensure the development team actually solves real problems instead of just meeting arbitrary requirements.
Too often teams start with What, and forget about Who and Why.
In short, user stories require the following:
And to construct user stories properly, teams usually rely on the three C’s:
Once the user story is complete, teams move to creating acceptance criteria.
Acceptance criteria is a formal list of requirements that match a corresponding user story.
A problem can be seen from many angles and a user story can be fulfilled in virtually infinite ways.
Acceptance criteria distills those possibilities into clear, straightforward requirements that must be present in the final product.
The criteria specifically states the conditions for fulfilling the user story and satisfying the Product Owner (your customer), the end user, and the software or hardware your product will interact or integrate with.
Acceptance criteria has to be so specific that each criterion can either pass or fail during testing.
Any criteria that is too ambiguous has to be refined. For example, wanting your app to be “awesome and engaging” tells developers almost nothing.
At the end of the day, acceptance criteria sets the “definition of done” and should eliminate as many misunderstandings as possible – aiming for absolute clarity.
Always always always write acceptance criteria BEFORE development begins.
User stories are helpful guides, but they’re not specific enough to execute.
Here’s exactly why you need to create acceptance criteria:
The Product Owner (client) may write the acceptance criteria, the development team will write it.
But even in the case of the Product Owner writing the criteria, the development team must review it and make sure it clearly lays out expectations, and that there are no constraints or inconsistencies.
With that said, getting the Product Owner’s input as much as possible is key to delivering a well-received product. And if the client has experience or know-how when it comes to writing acceptance criteria, then that’s one less thing development teams need to shoulder.
If the development team is tasked with writing the acceptance criteria solely, then you should bring on a project manager or Quality Assurance specialist to assist.
There are 3 main types of acceptance criteria that we outline below.
The scenario-oriented approach is laid out like this:
Often called the GWT (given, when, then) formula.
This approach was borrowed from the behavior-driven development (BDD) process. It defines the beginning and the end of testing for a particular feature.
This is especially helpful in limiting the amount of time spent on writing test cases. This takes care of it upfront.
Every individual acceptance criterion will have the following statements:
The goal is to describe every conceivable action a user can take to a complete a task and achieve a specific outcome.
There are instances when GWT won’t work for you.
For example:
The rule-oriented approach to acceptance criteria usually takes the form of a list of rules that describe the behavior of the product. Based on the rules, you create specific scenarios.
Rule-oriented acceptance criteria may look like this:
In many other cases, neither of those two methods work and development teams and/or Product Owners need to create a custom format for acceptance criteria.
What these formats look like can only be determined by the client and development team.
After knowing how to write acceptance criteria, you have to ensure you wrote it correctly.
Knowing what acceptance criteria should be is very different from actually writing them.
There are 3 characteristics of well-written acceptance criteria:
We touched on this briefly earlier, but want to expand on it.
Without clear criteria, effective testing is nearly impossible. And having more problems with the product down the line is almost inevitable.
Testable criteria allows you to confirm that the desired conditions have been met.
Plus, ambiguity prolongs testing and development, prolonging the rate at which the product is brought to market, increasing costs and making you less competitive.
If a criterion states “reduce the number of entries available in the drop-down menus,” the developer won’t know how many entries to reduce it to, or if one menu needs 3 reductions and another menu needs 5.
They’ll have to rely on their gut instincts and experience with the product.
A tester will have to do the same.
And eventually, the problem will go back to the Product Owner and have to repeated.
All of this wasted time and effort can be resolved through absolute clarity and specificity.
Strive for simplicity and succinctness when writing acceptance criteria.
You kind of have to approach it like any serious author would, by keeping the audience in mind and writing for total comprehension from the readers.
Long-winded descriptions and unnecessary jargon will only bog down your message and make it more difficult for developers and testers to decipher the criteria.
Furthermore, it’s very easy to overlook crucial details in a sea of text.
So hesitate before blaming others for their lack of “careful reading” and examine how the criteria was written, first.
Getting everyone on the same page is the primary goal in the early stages of software development.
Without cohesion between team members, the entire enterprise can devolve into arguments, confusion, and missed opportunities. All of which delays the final product.
One way to foster a shared vision and mission is to encourage every team member to take part in the acceptance criteria writing process.
This allows everyone to interact with the criteria and develop a deeper understanding naturally. But it also allows many people to offer criticism, ask questions, and refine the criteria before it’s executed.
Acceptance criteria should never be a rehash of user stories or other design documents.
It needs to stand on its own and should include the following:
Acceptance criteria is just one part of operating an effective Agile software development team.
There are many other factors to make Agile and acceptance criteria operate efficiently.
It takes the dedication of your team, organizational leaders, and top executives to make a new software development model work consistently for you and your clients.
Getting everyone onboard isn’t easy when you’re doing it alone. That’s where we come in.
ATC specializes in Agile consulting. We can help you:
Reach out today to discover how to make Agile finally work in your business.
In today's challenging job market, marked by layoffs, budget cuts, and recession fears, workers under…
The introduction of the Hybrid Cloud in 2011 revolutionized global businesses that solely depended on…
SaaS companies typically operate on a subscription model, which makes their sales cycle more intricate…
For years, companies across industries have been adopting Agile approaches for greater adaptability and speed.…
The race to become future-ready is critical as organizations stand to gain 1.7x higher efficiency…
Having a worldwide adoption of 87 percent, Scrum has unlocked a powerful way for companies…
This website uses cookies.