Who writes the scenarios?
This was originally posted on Matt's personal blog.
Barbara is a business analyst.
Until recently, Barbara hated BDD.
When her company first adopted Agile, lots of things changed. She was told she no longer needed to write requirements documents. Instead, she was expected to express the business user’s requirements as something called User Stories and put them into their Agile project management tool.
Jordan, their old Agile Coach, had told Barbara that each User Story needed to have acceptance criteria. When Barbara asked Jordan what acceptance criteria were, he was pretty vague. “Just write whatever you need so that the developers will understand what you want them to build”. He said.
So she did.
One thing Barbara liked about the move to Agile was that she sat with the team, instead of with all the other business analysts like she used to. She did miss her BA buddies but they still met up for lunch every Thursday and went for pizza at the mall across the road. Sitting with the team meant she got into lots more conversations with them about the work they were doing together, and had a chance to share some of her deep knowledge of the business domain.
So it didn’t matter too much what she wrote in the acceptance criteria. After all, as Jordan said, a user story is just a token for a conversation.
Then one day, the team got a new Agile coach, Nigel.
Nigel told Barbara that she should write all of her acceptance criteria using a new format: Given, When, Then. He said she didn’t need to spend so much time talking with the developers. Nigel said that was inefficient.
Nigel said that she should try to record everything she knew about each requirement using this Given, When, Then format. It felt kind of awkward, but she gave it a go.
Nigel said that the advantage of using Given, When, Then was that not only were they requirements for the developers, but the testers could use them for automated testing too. Nigel said this was called BDD. Barbara was starting to find Nigel quite irritating.
Anyway, Barbara carried on like this for a while. Her job became more lonely. She wrote up her user stories, and her Given, When, Thens, and assigned the stories to the developers in their Agile project management tool. The atmosphere in the team changed. People didn’t talk so much any more. It started to feel like the old days, except that she had to use this stupid fiddly project management tool and this silly Given, When, Then format — or “Gherkin” as Nigel insisted on calling it for some reason — for all her requirements, instead of just opening up Microsoft Word.
Barbara complained to her buddies on Thursdays about BDD. One of her friends, Carol, who was working in a different division of the company now where Jordan was coaching, seemed surprised.
“Wait, who do you say writes the scenarios?” asked Carol.
“I do”, said Barbara, “who else do you think could do it? The developers don’t seem to know enough about what the product does. And anyway, Nigel says they’re too busy to talk to me.”
“Too busy my ass! Busy writing code that does the wrong damn thing I’ll bet!” said Carol. “Let me tell you how we do it on my team.”
Barbara blushed a little at Carol’s language, but she couldn’t hide her smile. She really admired Carol’s up-front style. She listened as Carol explained.
“BDD is all about learning early. About deliberate discovery. About embracing your ignorance. If you have the person with the most domain knowledge write the scenarios, you’re missing a learning opportunity. That is a weak-ass move.