I’m writing a book! But it isn’t finished yet. In the meantime, here’s a sample of the kind of information that we’re likely to include in it. Please let me know if there’s anything else you’d like to see explained.
Please also see this related page on Embracing Uncertainty, as it’s highly relevant to the way in which I approach BDD!
* denotes relevant external links, not necessarily by me
Starting the Journey
These links provide an overview of BDD and its history, from Dan North’s initial inception to the use of scenario-based frameworks that predominates today. While reading these, spot the places where we mention conversation, questioning and feedback. These are at the heart of BDD. The language we use – examples, scenarios, Given, When, Then – is also relevant.
Dan North, “Introduction to BDD”*
Wikipedia, “Behavior Driven Development”*
Liz’s BDD Tutorial: annotated slides*
Conversational Patterns in BDD
It’s about the examples you can’t find, not the ones you can
ATDD vs. BDD and a potted history of some related stuff
Dan and Liz are interviewed at GOTO Chicago
Using BDD with Legacy Systems
Converting from ATDD / TDD
Want to know how to move from a TDD or ATDD mindset to a BDD one? These links focus on the differences between the methodologies. If you’re already doing TDD or ATDD very well, you may find some hints for sharpening your practices here.
Feature Injection: From Vision to Scenario
Chris Matts, an analyst involved in the initial BDD inception, takes some of the patterns in BDD into the analysis space. These practices can really help in phrasing scenarios effectively and focusing on business-valuable differentiators.
Capabilities and Complexity Estimation
When we write our scenarios, we think about the capabilities we’re delivering, rather than the features and UI that we’re using to drive out those capabilities. Sometimes when we’re talking about something new, it’s hard to decide what the outcome of a scenario should be. If we’re talking about things which are well-understood, people become bored and it wastes time. These articles outline ways in which the certainty of capabilities can be identified, and the different approaches and ways of using BDD within those different domains. We also look at approaches for continuous capabilities (aka non-functionals).
Sometimes we like to play and experiment with the concepts of BDD. I thought these popular nuggets were worth including.
What’s missing? Is there something that you feel explains a concept better than these links? Please let me know by email – liz at lunivore.com – or in the comments below!