What is Acceptance Criteria?

July 27, 2014

I had a business user ask me

"what is acceptance criteria?". 

I scoffed and thought

Acceptance criteria? That is so easy how can an English speaking person not know 
what acceptance criteria is or means?

I started to reply to the user’s email, I then realized that explaining the meaning of acceptance criteria (in the agile world) wasn’t as easy as I thought.

So I started to break down the meaning. I asked myself what is acceptance criteria in lay-man’s terms?

Acceptance Criteria is a list of items that must be delivered in order to mark a feature as complete.

Okay seems simple enough, and this is what I sent back to the user. They replied to my explanation with

"Thank you for the explanation but it is still not clear to me what Acceptance Criteria is. Could you give me more information."

So how can I explain this to a 5-year-old without coming across as being condescending? How can I make this as simple as possible. So I tried again?

When you asked for this new feature, in your mind it had to have the functionality that you wanted

The developer that will implement your new feature needs to get the big picture of what you want.

As the developer implements, your feature, they are going to tick items off that will make up the feature you want.

In other words, the developer needs to know what your requirements are in order to give you what you want.

A picture is worth a thousand words so any working examples or screen-shots or mocks will be valuable

I went even further and used an example I found.

As a conference attendee, I want to be able to register on-line, so I can register quickly and cut down on paperwork

The acceptance criteria for this story would include

1. A user cannot submit a form without completing all the mandatory fields
2. Information from the form is stored in the registrations database
3. Protection against Spam is working
4. Payment can be made via credit card
5. An acknowledgment email is sent to the user after submitting the form.

I thought long and hard about what is acceptance criteria and my different replies. The following questions popped up in my mind while doing this.

Acceptance Criteria are a set of statements, each with a clear pass / fail result, that specify both functional 
(e.g., minimal marketable functionality) and non-functional (e.g., minimal quality) 
requirements applicable at the current stage of project integration. These requirements represent "conditions of satisfaction."
There is no partial acceptance: either a criterion is met or it is not.

instead of keeping it simple?

I don’t have the answers to these questions right now but surely if we as programmers / developers / engineers keep down this path we will further alienate the very people whose lives we are meant to make easier.

Discussion, links, and tweets

My name is Deon Heyns and I am a developer learning things and documenting them in realtime. Python, Ruby, Scala, .NET, and Groovy are all languages I have written code in. I appeared in the New York Post once. I host my code up at GitHub and Bitbucket so have a look at my code, fork it and send those pull requests.

comments powered by Disqus