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

Death By Specification(cukeup)

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.

stevenjackson

September 30, 2014
Tweet

More Decks by stevenjackson

Other Decks in Business

Transcript

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

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

    Why are they still talking to me? Thoughts…
  3. We need SIX people to spend SIX hours detailing a

    feature we MIGHT implement? Thoughts…
  4. Scenario: Winning! Given I bid on a book When I

    have the highest bid Then I should win What if…. What about… TOO BIG!
  5. 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…
  6. 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?
  7. 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…
  8. “…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
  9. Whole Team • Focused on Value • Clear Communication •

    T-Shaped People • Poly-pairing • Swarming • Flexible vs Time Wasting
  10. Drill into features Design Studio Method New Ideas Good ideas

    come from everybody Collaborative Sketching
  11. Personas Grounded on real people - Built on real interviews

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

    to build it • Knows how to verify it
  13. 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
  14. When? • Before WIP - Single story • Short •

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

    see that proves this worked? • Determine the easiest way to get there
  16. 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
  17. 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
  18. Why Cucumber? • Visible Progress • Human-Readable • Executable Requirements

    • Acceptance Criteria • Integration Testing • Automated Verification • Regression Testing