$30 off During Our Annual Pro Sale. View Details »

How BDD can save agile

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

mattwynne

March 05, 2015
Tweet

More Decks by mattwynne

Other Decks in Technology

Transcript

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

    View Slide

  2. Does agile really need
    saving?

    View Slide

  3. Scrum != Agile

    View Slide

  4. Quality
    Communication
    Predictability

    View Slide

  5. Technical discipline
    Collaboration
    Small pieces

    View Slide

  6. How does BDD help?

    View Slide

  7. Individuals and Interactions
    over
    Processes and Tools

    View Slide

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

    View Slide

  9. BDD is a tool that
    facilitates interactions
    between individuals

    View Slide

  10. BDD is a label
    but

    View Slide

  11. I don’t like labels

    View Slide

  12. Let’s talk about
    behaviour instead

    View Slide

  13. BDD practitioners
    explore, discover, define,
    then drive out
    the desired behaviour of software
    using
    conversations, concrete
    examples and automated
    tests.

    View Slide

  14. Explore Discover Define Drive out

    View Slide

  15. Conversations
    Concrete examples
    Test-driven development

    View Slide

  16. CONVERSATIONS

    View Slide

  17. SOFTWARE IS MADE BY
    PEOPLE
    CONVERSATIONS MATTER BECAUSE

    View Slide

  18. IGNORANCE IS THE
    BOTTLENECK
    CONVERSATIONS MATTER BECAUSE

    View Slide

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

    View Slide

  20. EVERYONE HAS A
    UNIQUE PERSPECTIVE
    CONVERSATIONS MATTER BECAUSE

    View Slide

  21. CONCRETE
    EXAMPLES

    View Slide

  22. MAKE SENSE TO
    EVERYONE
    CONCRETE EXAMPLES

    View Slide

  23. ROOTED IN THE
    PROBLEM DOMAIN
    CONCRETE EXAMPLES ARE

    View Slide

  24. Problem
    Domain
    Solution
    Domain

    View Slide

  25. HELP BUILD A
    UBIQUITOUS LANGUAGE
    CONCRETE EXAMPLES PROVIDE

    View Slide

  26. A SHARED SOURCE OF
    TRUTH
    CONCRETE EXAMPLES PROVIDE

    View Slide

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

    View Slide

  28. TEST-DRIVEN
    DEVELOPMENT

    View Slide

  29. WARNING LIGHTS
    AUTOMATED TESTS ARE YOUR

    View Slide

  30. REFACTORING
    THE BIT OF TDD THAT EVERYONE FORGETS IS

    View Slide

  31. View Slide

  32. View Slide

  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

    View Slide

  34. WHY?
    TDD FORCES YOU TO ASK

    View Slide

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

    View Slide

  36. NO SHORT CUTS:
    EXCELLENT
    COMMUNICATION
    EXCELLENT CODE

    View Slide

  37. THANKS.
    QUESTIONS?
    @mattwynne
    [email protected]

    View Slide