Behaviour Driven Development

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.

Tests should make things easy to change
Translating TDD to BDD
Mocks, Outside-in, Swarming Features and Guesswork
Interview with Anthony Bailey: What does BDD offer TDD die-hards?*

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.

Chris Matts, “Real Options at Agile 2009”*
InfoQ article: “Pulling Power: A New Software Lifespan”*
They’re Not User Stories
Acceptance Criteria vs. Scenarios
Step Away from the Tools

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).

Estimating Complexity
Capability-based Planning and Lightweight Analysis
Continuous vs. Discrete Capabilities

Fun

Sometimes we like to play and experiment with the concepts of BDD. I thought these popular nuggets were worth including.

Pixie Driven Development

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!