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

How to fail with BDD

How to fail with BDD

Having helped many companies adopt BDD over the years, Dan has seen some remarkable, inspiring, worrying and downright scary activities performed in the name of BDD. It seems there are many ways to interpret both the theory and practice of BDD, and this talk attempts to navigate some of that landscape, and provide guidance and advice for those setting out on their BDD journey.

Daniel Terhorst-North
PRO

November 10, 2017
Tweet

More Decks by Daniel Terhorst-North

Other Decks in Programming

Transcript

  1. How to fail with BDD
    Dan North
    @tastapod

    View Slide

  2. How to fail with Testing and BDD
    Dan North
    @tastapod

    View Slide

  3. How to fail with BDD and Testing
    Dan North
    @tastapod

    View Slide

  4. @tastapod
    Defining BDD
    *back in the golden age of 140 characters

    View Slide

  5. @tastapod
    Defining BDD

    View Slide

  6. @tastapod
    Defining BDD
    https:/
    /en.wikipedia.org/wiki/Behavior-driven_development
    BDD is a second generation, outside-in, pull-based,
    multiple stakeholder, multiple scale, high-
    automation, agile methodology.
    It describes a cycle of interactions with well-
    defined outputs, resulting in the delivery of
    working, tested software that matters.

    View Slide

  7. @tastapod
    How to fail with BDD
    BDD is a second generation, outside-in, pull-based,
    multiple stakeholder, multiple scale, high-
    automation, agile methodology.
    It describes a cycle of interactions with well-
    defined outputs, resulting in the delivery of
    working, tested software that matters.

    View Slide

  8. @tastapod
    How to fail with BDD
    BDD is a second generation, outside-in, pull-based,
    multiple stakeholder, multiple scale, high-
    automation, agile methodology.
    It describes a cycle of interactions with well-
    defined outputs, resulting in the delivery of
    working, tested software that matters.

    View Slide

  9. @tastapod
    Ignore outside-in, pull-based
    Are you starting where you should? Or just where you know?
    Where does demand coming from?
    What is the next most valuable thing to work on?

    View Slide

  10. @tastapod
    How to fail with BDD
    BDD is a second generation, outside-in, pull-based,
    multiple stakeholder, multiple scale, high-
    automation, agile methodology.
    It describes a cycle of interactions with well-
    defined outputs, resulting in the delivery of
    working, tested software that matters.

    View Slide

  11. @tastapod
    How to fail with BDD
    BDD is a second generation, outside-in, pull-based,
    multiple stakeholder, multiple scale, high-
    automation, agile methodology.
    It describes a cycle of interactions with well-
    defined outputs, resulting in the delivery of
    working, tested software that matters.

    View Slide

  12. @tastapod
    Ignore multiple stakeholder
    Operate a feature factory
    Fall into the Build Trap™
    Accumulate technical debt
    Create a support nightmare

    View Slide

  13. @tastapod
    How to fail with BDD
    BDD is a second generation, outside-in, pull-based,
    multiple stakeholder, multiple scale, high-
    automation, agile methodology.
    It describes a cycle of interactions with well-
    defined outputs, resulting in the delivery of
    working, tested software that matters.

    View Slide

  14. @tastapod
    How to fail with BDD
    BDD is a second generation, outside-in, pull-based,
    multiple stakeholder, multiple scale, high-
    automation, agile methodology.
    It describes a cycle of interactions with well-
    defined outputs, resulting in the delivery of
    working, tested software that matters.

    View Slide

  15. @tastapod
    Ignore multiple scale
    Gherkin fixation
    Cucumber allergy
    Tool fixation

    View Slide

  16. @tastapod
    How to fail with BDD
    BDD is a second generation, outside-in, pull-based,
    multiple stakeholder, multiple scale, high-
    automation, agile methodology.
    It describes a cycle of interactions with well-
    defined outputs, resulting in the delivery of
    working, tested software that matters.

    View Slide

  17. @tastapod
    How to fail with BDD
    BDD is a second generation, outside-in, pull-based,
    multiple stakeholder, multiple scale, high-
    automation, agile methodology.
    It describes a cycle of interactions with well-
    defined outputs, resulting in the delivery of
    working, tested software that matters.

    View Slide

  18. @tastapod
    Ignore high-automation
    Without automation there is no feedback
    Without feedback there is no direction
    Copy-and-paste is not automation!
    Automation is a programming activity

    View Slide

  19. @tastapod
    How to fail with BDD
    BDD is a second generation, outside-in, pull-based,
    multiple stakeholder, multiple scale, high-
    automation, agile methodology.
    It describes a cycle of interactions with well-
    defined outputs, resulting in the delivery of
    working, tested software that matters.

    View Slide

  20. @tastapod
    How to fail with BDD
    BDD is a second generation, outside-in, pull-based,
    multiple stakeholder, multiple scale, high-
    automation, agile methodology.
    It describes a cycle of interactions with well-
    defined outputs, resulting in the delivery of
    working, tested software that matters.

    View Slide

  21. @tastapod
    Ignore interactions
    Developer confirmation bias
    Tester confirmation bias
    Tooling as passive-aggressive shield

    View Slide

  22. @tastapod
    How to fail with BDD
    BDD is a second generation, outside-in, pull-based,
    multiple stakeholder, multiple scale, high-
    automation, agile methodology.
    It describes a cycle of interactions with well-
    defined outputs, resulting in the delivery of
    working, tested software that matters.

    View Slide

  23. @tastapod
    How to fail with BDD
    BDD is a second generation, outside-in, pull-based,
    multiple stakeholder, multiple scale, high-
    automation, agile methodology.
    It describes a cycle of interactions with well-
    defined outputs, resulting in the delivery of
    working, tested software that matters.

    View Slide

  24. @tastapod
    Ignore working, tested software
    BDD is not about conversations!
    BDD is about shipping working software that matters
    using conversations!

    View Slide

  25. @tastapod
    How to fail with BDD
    BDD is a second generation, outside-in, pull-based,
    multiple stakeholder, multiple scale, high-
    automation, agile methodology.
    It describes a cycle of interactions with well-
    defined outputs, resulting in the delivery of
    working, tested software that matters.

    View Slide

  26. @tastapod
    Defining Testing
    What? Why?
    “to increase confidence
    for stakeholders
    through evidence”
    Definition Purpose

    View Slide

  27. @tastapod
    Defining Testing
    “to increase confidence
    for stakeholders
    through evidence”
    pragmatism
    empathy
    ingenuity

    View Slide

  28. @tastapod
    How to fail with Testing
    “to increase confidence
    for stakeholders
    through evidence”
    pragmatism
    empathy
    ingenuity

    View Slide

  29. @tastapod
    Ignore pragmatism
    Feature files for everything!
    Test coverage targets
    Moar tests!

    View Slide

  30. @tastapod
    How to fail with Testing
    “to increase confidence
    for stakeholders
    through evidence”
    pragmatism
    empathy
    ingenuity

    View Slide

  31. @tastapod
    Ignore empathy
    Those pesky stakeholders again!
    What are you are testing, and why?
    Are you just focusing on the nearest or noisiest?

    View Slide

  32. @tastapod
    How to fail with Testing
    “to increase confidence
    for stakeholders
    through evidence”
    pragmatism
    empathy
    ingenuity

    View Slide

  33. @tastapod
    Ignore ingenuity
    When the only tool you have is a gherkin…
    Step outside of your own echo chamber
    Shift testability concerns upstream

    View Slide

  34. @tastapod
    You can fail with BDD and Testing
    You just have to not be doing BDD
    and not be doing Testing

    View Slide

  35. Thanks for listening!
    https:/
    /dannorth.net
    @tastapod

    View Slide