Differences between revisions 3 and 4
Revision 3 as of 2005-08-12 17:18:09
Size: 1597
Editor: DanNorth
Revision 4 as of 2005-08-12 17:20:08
Size: 1605
Editor: DanNorth
Deletions are marked like this. Additions are marked like this.
Line 9: Line 9:
Line 10: Line 11:
Line 14: Line 16:
Line 15: Line 18:

BehaviourDrivenDevelopment grew out of a thought experiment based on NeuroLinguisticProgramming techniques. The idea is that the words you use influence the way you think about something.

As an example, when I was first getting to grips with TDD, I was pairing with an experienced agile coach, writing little test methods, then writing the code, and generally feeling good about life. Then I went ahead and wrote some code without a test. The coach, JR, asked me why I'd written the code. I answered: "we'll need it in a minute", to which JR replied "yes, we might". By using the word "might", he introduced the possibility that we might not. As it turned out, we didn't. - DanNorth

A coach introducing Test-Driven Development to sceptical (i.e. most) developers invariably runs into a familiar set of objections.

From programmers:

  • - Why do I need to write tests? That's what testers do. - Writing all these tests slows me down, it's a waste of time. - I'm a good programmer! I don't need to write tests to prove my code works

And from testers:

  • - Why are you getting programmers to write tests? We all know they can't – that's why you need testers. - Are you trying to take our jobs away? - You obviously don't understand testing or you wouldn't be getting programmers to write tests!

This last comment is particularly ironic. In fact, the testers take on a central and very important role in Behaviour-Driven Development.

The behaviour-centric vocabulary helps us to avoid these common misunderstandings and focus on BDD as a design and delivery process.

BDDWiki: GettingTheWordsRight (last edited 2009-05-13 10:41:13 by MarkCrowther)