How BDD can save agile

Cdf378de2284d8acf137122e541caa28?s=47 mattwynne
March 05, 2015

How BDD can save agile

As lead developer of Cucumber and author of The Cucumber Book, Matt gets asked to consult with organisations who want to introduce Behaviour-Driven Development (BDD). Time after time, he meets teams who are trapped doing half-arsed agile. They do the easy, obvious, visible agile practices, and none of the powerful, hard-to-master, hard-to-see ones.

When these teams ask for help learning BDD, we get a chance to remind them how important conversations and collaboration are in software development. We teach them to write tests before they write code, as a way to explore and discover the hidden details of a requirement just before they dive in and start building it. This talk will make you wince with recognition, laugh with despair, and finally inspire you with stories of teams that have finally, after years of flaccid scrumming, discovered the true collaborative heart of agile software development. You’ll see patterns you recognise from your own teams, and gain insights about how to fix them.

Presented at QCon London March 5th 2015
http://qconlondon.com/presentation/why-bdd-can-save-agile

Cdf378de2284d8acf137122e541caa28?s=128

mattwynne

March 05, 2015
Tweet

Transcript

  1. HOW BDD CAN SAVE AGILE @mattwynne | QCon 2015 |

    London
  2. Does agile really need saving?

  3. Scrum != Agile

  4. Quality Communication Predictability

  5. Technical discipline Collaboration Small pieces

  6. How does BDD help?

  7. Individuals and Interactions over Processes and Tools

  8. BDD is a tool or maybe even a process, I

    dunno… but…
  9. BDD is a tool that facilitates interactions between individuals

  10. BDD is a label but

  11. I don’t like labels

  12. Let’s talk about behaviour instead

  13. BDD practitioners explore, discover, define, then drive out the desired

    behaviour of software using conversations, concrete examples and automated tests.
  14. Explore Discover Define Drive out

  15. Conversations Concrete examples Test-driven development

  16. CONVERSATIONS

  17. SOFTWARE IS MADE BY PEOPLE CONVERSATIONS MATTER BECAUSE

  18. IGNORANCE IS THE BOTTLENECK CONVERSATIONS MATTER BECAUSE

  19. Discovery Workshop Stories Examples Shared understanding Smaller stories Questions Business

    rules
  20. EVERYONE HAS A UNIQUE PERSPECTIVE CONVERSATIONS MATTER BECAUSE

  21. CONCRETE EXAMPLES

  22. MAKE SENSE TO EVERYONE CONCRETE EXAMPLES

  23. ROOTED IN THE PROBLEM DOMAIN CONCRETE EXAMPLES ARE

  24. Problem Domain Solution Domain

  25. HELP BUILD A UBIQUITOUS LANGUAGE CONCRETE EXAMPLES PROVIDE

  26. A SHARED SOURCE OF TRUTH CONCRETE EXAMPLES PROVIDE

  27. SPLIT STORIES INTO SMALL PIECES CONCRETE EXAMPLES HELP YOU TO

  28. TEST-DRIVEN DEVELOPMENT

  29. WARNING LIGHTS AUTOMATED TESTS ARE YOUR

  30. REFACTORING THE BIT OF TDD THAT EVERYONE FORGETS IS

  31. None
  32. None
  33. You can't have clean code without refactoring You can't refactor

    without good automated tests You can't stay agile without clean code
  34. WHY? TDD FORCES YOU TO ASK

  35. LISTENING TO THE TESTS BUT YOU WILL FAIL UNLESS YOU

    ARE
  36. NO SHORT CUTS: EXCELLENT COMMUNICATION EXCELLENT CODE

  37. THANKS. QUESTIONS? @mattwynne matt@cucumber.pro