What is your approach to creating acceptance criteria ?
How do you describe the expected behaviour of the requirements you capture?
Maybe your a business type who complains that IT ‘don’t make things work the way you wanted it to’ or a business analyst who finds its hard to best describe what ‘stuff’ should do.
Or maybe you’re a developer who’s writing code and you’re constantly having to go back and make changes because the AC isn’t what you ‘thought’ it was.
Before I go on, let me put it out there from now –
People will always misinterpret things. Interpretation is an individual way of processing information & so there is always a chance of people seeing things differently -even though their looking/listening/experiencing the same thing. The only thing we can do is reduce the likely-hood of misinterpretation – not eradicate it!
So maybe the real question is…
How do we explicitly explain what the business want to help developers get it to as close to what the business want – as humanly possible!
How?
Its called BDD.
Behaviour driven development.
BDD is more than an approach to acceptance criteria writing – its a technique that was introduced to deliver (to quote the creator Dan North) ‘well crafted software’. There are a few facets to BDD but I’ll be focusing on the acceptance criteria part in this blog. So lets get some specification by example going.
First, we need a case study for us to example on.
So lets say that a company (Sky maybe) wanted to stream the olympics from a smart phone app but want to ensure that users streaming the live Olympic event were informed on the TV Licensing laws to actually watch Live TV from their phones. Lets first knock up a story for this requirement:
Here’s an example:
#Story 1
Title: Customer with TV Licence
As customer with a TV Licence
I want to view Live video items
So that I can watch the Olympics
Great we have our story. Now this story could have a few behaviours. Lets look at modelling the first scenario, for those users who do have a TV Licence, or at least say they do 😉
Scenario: 1
Given I have selected a live video Item
When the pop up box appears
And I select
|Watch Now|
Then Launch the selected Video
There it is.
Given, When, Then.
This is a very powerful approach to describing behaviour. When a developer picks up this user story and spins the card round, he/she has a pretty good idea of what the expected behaviour is for customers who do have a TV License. Lets create another story for those customers who do not have a TV License:
#Story 2
Title: Customer with no TV Licence
As customer with no TV Licence
I want to view Live video items
So that I can get a TV Licence to view Live TV via the I-Player
Scenario :1
Given I have selected a live vide item
When the pop up box appears
And I select
| I don’t have a TV Licence|
Then take me to the below URL:
Hope the examples inspire you to try it out 🙂