Did any of you use behavior driven development in your projects?

The concept and tools for it sound great. But was it easy to introduce and then stick to it? Did it lead to significant and visible positive results?

closed as primarily opinion-based by gnat, user53019, user40980, Dynamic, Simon Bergot Dec 18 '13 at 7:57

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • Out of interest, is there a difference between BDD and "ATDD"? I've worked peripherally on a project using BDD, and it's worked well so far; going live soon. – Armand Feb 3 '11 at 11:13
  • "real-life projects"? What does that mean? Are you going to say that my project was not real? What are the criteria for judging "real-life"? – S.Lott Feb 3 '11 at 11:14
  • If you think it's real-life, it definitely is a real-life project. If you used it, please write an answer about your experience ) – Nikita Barsukov Feb 3 '11 at 11:18
  • "If you think it's real-life"? Then everything counts as "real-ife". Please remove the words from the question if everyone's experience counts as real-life. If the words have no meaning, please remove them. – S.Lott Feb 3 '11 at 11:19

Yes. Used it.

Yes. Stuck to it. It was easy. All behaviors were provided by examples. No narrative text "specifications". Actual examples with actual business rationale. Since users can do this, there are no intermediary business analysts.

Yes. Without it, some bunch of business analysts would still be writing contradictory and incomplete "specifications" for the software design. With it, the users described what should happen specifically. Concrete real-world examples of behavior.

I turned the examples into unit tests. Code was written to pass the tests.


It's pretty simple once you start doing it.

If you have any idea on what you want your program to do (high level, low level, whatever), formalize it into a test before you start writing code.

'When I open the program I should see option X, Y, and Z'

Formalize it into test code. Write the code. Voila.

Not the answer you're looking for? Browse other questions tagged or ask your own question.