Common Understanding using Examples

Bdd Kickstarter
3 min readMar 2, 2017

--

We often think that by describing our behaviours in a natural language that it means that we’re instantly doing BDD, however natural language (and English especially) can be incredibly vague, leading to misunderstandings about even simple requirements (the word set, for example, has 464 different definitions).

Each time we transfer information from one medium to another (e.g. brain to document/user story/whatever and back again) we run the risk of information leaking away, sometimes with disastrous results. Take the following sentence:

She said she loved him

Pretty easy to understand right? Now try adding the word only before any of the words in that sentence — the meaning is completely changed each time.

Imagine you’re writing up some requirements and in your mind, you mean to say:

She said she loved only him

but you end up typing

She said only she loved him

It should be easy to spot, but unfortunately, we have all sorts of cognitive biases working against us, meaning that you often read what you want to read (after all you know what you meant to say).

Sounds contrived, but take this real-life example:

Confirm appointment with the customer only after successfully booking a Smart meter installation.

The intent here is that the customer is notified only after the job has been successfully booked, compared to:

Confirm appointment only with the customer after successfully booking a Smart meter installation.

Which suggests it is only the customer that receives the notification, or

Confirm appointment with the customer after successfully booking only a Smart meter installation.

Which suggests that it is just a Smart meter installation on its own that triggers a confirmation.

Examples to the rescue

When we use examples to define our requirements, this ambiguity disappears because examples give us context.

The examples for

Confirm appointment with the customer only after successfully booking a Smart meter installation.

Could be something like:

while

Confirm appointment only with the customer after successfully booking a Smart meter installation

could be:

however, the examples for

Confirm appointment with the customer after successfully booking only a Smart meter installation.

might be:

So, a simple transposition (or omission) of a single only leads to a wildly different behaviour.

With examples, though, it becomes almost impossible to misinterpret

Confirm appointment with the customer only after successfully booking a Smart meter installation.

with

Confirm appointment with the customer after successfully booking only a Smart meter installation.

or

Confirm appointment only with the customer after successfully booking a Smart meter installation.

--

--