At the Agile Coaching DC meetup tonight, about 50 people participated in my “Behavior-Driven Development for Everyone” exercise. The abstract:
Problems are better solved when you’re better involved. That’s how you make your living, and that’s what BDD is all about. We’ll work together to solve a problem in a way we can all understand and trust, expressing what we want in plain English and automating our tests with a tool called Cucumber. Don’t worry, you won’t be put on the spot at the keyboard — I’ll handle all the coding!
What we did
My goal was to illustrate two things:
- Cucumber the tool: side-by-side-by-side, how the three ingredients — the human-readable Gherkin spec, the programmer-readable step definitions that animate the spec, and the code being developed to meet the spec — are connected, or might fail to be, and how they must evolve together.
- BDD the practice: side-by-side-by-side, how the Three Amigos — Product Owners, Testers, and Developers — are connected, or might fail to be, and how they can collaborate via shared language (and optionally a tool like Cucumber).
To that end, after reviewing a few slides, I live-coded the first few bits of Gherkin, step definitions, and application code, using Cucumber in Perl. Then we split into a few groups to slice and sequence the remaining scenarios that add up to a properly scored game of bowling, and got back together at the end to compare results. Our findings are in the slides.
Here’s video of the first half:
And here are organizer Steve Moubray’s photos of the second half.
Read more
In addition to the references in the slides, here’s a story of my own about seeking greater effectiveness through BDD, from my series about the human value of TDD.
Learn more
What would BDD look like in your context? Need help getting started? Get in touch! I’d love to work with you (especially in the New York metro area or remotely) or refer you to an expert hands-on instructor near you.