Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

November 10, 2017
Tweet

More Decks by Daniel Terhorst-North

Other Decks in Programming

Transcript

  1. @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.
  2. @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.
  3. @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.
  4. @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?
  5. @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.
  6. @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.
  7. @tastapod Ignore multiple stakeholder Operate a feature factory Fall into

    the Build Trap™ Accumulate technical debt Create a support nightmare
  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.
  9. @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.
  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.
  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.
  12. @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
  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.
  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.
  15. @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.
  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.
  17. @tastapod Ignore working, tested software BDD is not about conversations!

    BDD is about shipping working software that matters using conversations!
  18. @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.
  19. @tastapod How to fail with Testing “to increase confidence for

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

    stakeholders through evidence” pragmatism empathy ingenuity
  21. @tastapod Ignore empathy Those pesky stakeholders again! What are you

    are testing, and why? Are you just focusing on the nearest or noisiest?
  22. @tastapod How to fail with Testing “to increase confidence for

    stakeholders through evidence” pragmatism empathy ingenuity
  23. @tastapod Ignore ingenuity When the only tool you have is

    a gherkin… Step outside of your own echo chamber Shift testability concerns upstream
  24. @tastapod You can fail with BDD and Testing You just

    have to not be doing BDD and not be doing Testing