Death By Specification(cukeup)

6b6afbaea3bf1de98975dedc5cd083c1?s=47 stevenjackson
September 30, 2014

Death By Specification(cukeup)

With powerful tools like cucumber comes great responsibility. Is the power going to your head? Have you ever had thoughts like:

* I'm going to lock my customers in a room and make them type gherkin until their heads bleed
* I've given the developers EXACTLY what the app should do. Why are they still talking to me?
* FIFTEEN Scenarios! For a log in form??!?
* We need 6 people to spend 6 hours detailing a feature we MIGHT implement?

Let's talk about a few ways to build shared understanding and why our techniques tend to break down as the product evolves.

6b6afbaea3bf1de98975dedc5cd083c1?s=128

stevenjackson

September 30, 2014
Tweet

Transcript

  1. Death By Specification Steve Jackson @stevejxsn steve.jackson@leandog.com

  2. Thoughts… I’m going to lock them in a room and

    make them type gherkin until their hands bleed.
  3. I’ve given the developers EXACTLY what the feature should do.

    Why are they still talking to me? Thoughts…
  4. FIFTEEN scenarios?!?! For a login form? Thoughts…

  5. We need SIX people to spend SIX hours detailing a

    feature we MIGHT implement? Thoughts…
  6. Introducing Patty Product Owner Bill Business Analyst Donna Developer Tom

    Tester
  7. Why Cucumber? • Visible Progress • Readable Patty Product Owner

  8. Why Cucumber? Bill Business Analyst • Executable Requirements • Precise,

    Rich, Specification
  9. Why Cucumber? Donna Developer • Acceptance Criteria • Integration Testing

  10. Why Cucumber? Tom Tester • Automated Verification • Regression Testing

  11. Let’s write some tests!

  12. Scenario: Winning! Given I bid on a book When I

    have the highest bid Then I should win What if…. What about… TOO BIG!
  13. Scenario: Winning! Given Joe is selling: | Title | Condition

    | Floor | | Oliver Twist | Like New | $40.00 | | Henry V | Fair | $31.97 | … And I have $47.00 remaining in my account When I bid $42.50 on the “Like New“ copy of “Oliver Twist” And I decide on a bid limit of $43.00 And Jane bids $42.99 Then I end up bidding $43.00 before the auction closes And I win What about pesos? Do we need… We can’t do that…
  14. Scenario: Winning! Given I win the auction Then the system

    saves the Paypal ID And modifies the SHIPPING table And the page has a div.won element And the system auto declines the other bids Don’t forget… ZZZZZZZ Where’s the biz reqt?
  15. Scenario: Winning! Given I search for “1984” And I pick

    the first result And I click the “Bid” button And I enter “321” in the text field And I select “peso” from the drop down And I click the “Place Bid” button When the seller goes to their inventory And removes “1984” Then the auction ends And I have the highest bid But I don’t get the book We don’t need that test Who would do that? She can’t do that because…
  16. http://www.dailymail.co.uk/news/article-2199724/Grandfathers-shock-growing-21-inch-cucumber.html OMG SO MANY TESTS

  17. “…if we failed to make our program align with what

    we then understood to be the proper way to think about our financial objects, then we were gonna continually stumble over that disagreement and that would slow us down which was like paying interest on a loan.” “I'm never in favor of writing code poorly, but I am in favor of writing code to reflect your current understanding of a problem even if that understanding is partial.” http://c2.com/cgi/wiki?WardExplainsDebtMetaphor Technical Debt
  18. Every test is potentially interest Every test is potentially emergent

  19. Destroy All The Tools!

  20. Why Does This Work? • No experts? • No roles?

    • No process?
  21. Shared Understanding • Trust • Care • Collapsed Roles •

    NO HANDOFFS
  22. How?

  23. Whole Team • Focused on Value • Clear Communication •

    T-Shaped People • Poly-pairing • Swarming • Flexible vs Time Wasting
  24. Empathy • Get involved in user research • Something humans

    can use
  25. http://agilewarrior.wordpress.com/2010/11/06/the-agile-inception-deck/ Radiate

  26. Question Assumptions • Let’s have a conversation • Oh this

    is complicated…
  27. They Are JUST Tools

  28. See the whole How does someone actually use it Surface

    complexity Interaction Diagram
  29. Lightweight Prototypes

  30. Drill into features Design Studio Method New Ideas Good ideas

    come from everybody Collaborative Sketching
  31. Whiteboard

  32. Personas Grounded on real people - Built on real interviews

    • Role • Goals • Pains Hints: • Combine with empathy map • Use in cukes
  33. Three Amigos • Knows what to build • Knows how

    to build it • Knows how to verify it
  34. What? • The goal is shared understanding • The hurdle

    is agreed upon acceptance criteria • The deliverable is gherkin Hints: • Cukes are meant to be READ! • Short, sweet, no technobabble • Don’t get hung up on implementation details
  35. When? • Before WIP - Single story • Short •

    Last responsible moment • Open communication paths
  36. How? • Start with ideal outcome • What can we

    see that proves this worked? • Determine the easiest way to get there
  37. How? • What if Given is not true? • Challenge

    assumptions • If we don’t build the When, what would we do instead? • Drive into the WHY
  38. Not Just Gherkin • What do we automate? How best

    to automate? • Who gives feedback? Who cares about this feature? • Infrastructure, Performance, etc • What are we NOT going to do • Story splitting, compromising, etc
  39. Why Cucumber? • Visible Progress • Human-Readable • Executable Requirements

    • Acceptance Criteria • Integration Testing • Automated Verification • Regression Testing
  40. Why Cucumber? • Constant Collaboration • Shared Understanding • Eliminate

    Waste • Deliberate Discovery • Build Trust
  41. Thanks! Steve Jackson @stevejxsn steve.jackson@leandog.com