Behaviour Driven Development – How to actually BDD! No tech skills required :)

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!


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 🙂


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s