Let me tell you a story

51
Let me tell you a story Seb Rose Claysnow Limited @sebrose Tuesday, 22 April 14

description

What’s the relationship between features and stories? What is a ‘user’ story anyway? Where do acceptance criteria fit in? These questions (and more) are often answered badly - when they aren't ignored completely. In this session Seb will dissect a user story and find that they come in several shapes and sizes (that change throughout the project lifecycle). He will walk through the evolution of a feature file and see why so many of the text-book examples actually encourage bad habits. By the end of this session, attendees will walk away being able to describe the multiple uses of user stories as well as understand that misuse is commonplace. They will learn to recognise the value of user stories, appreciate the strengths and weaknesses of typical user story templates, as well as having gained in depth knowledge of the relationship between feature files and user stories. We hope also that attendees will have learnt to identify the shortcomings of typical text-book feature file examples.

Transcript of Let me tell you a story

Page 1: Let me tell you a story

Let me tell you a story

Seb RoseClaysnow Limited

@sebrose

Tuesday, 22 April 14

Page 2: Let me tell you a story

Tuesday, 22 April 14

Page 3: Let me tell you a story

Tuesday, 22 April 14

Page 4: Let me tell you a story

VISA subscriptionsIn order to increase subscriptions

visitors should be able to

subscribe online with a VISA card

Tuesday, 22 April 14

Page 5: Let me tell you a story

“User stories are slippery,

Tuesday, 22 April 14

Page 6: Let me tell you a story

“User stories are slippery,

so we call them Product Backlog Items”

Tuesday, 22 April 14

Page 7: Let me tell you a story

We never finish them in an

iteration

How do I trace them to features

Hard to estimate

Not enough detail to start coding

Nothing I can testDifficult to prioritise

Tuesday, 22 April 14

Page 8: Let me tell you a story

As a <role>

I want to <do something>

So that <I get some value>

Tuesday, 22 April 14

Page 9: Let me tell you a story

In order to <get some value>

<role> should be able to

<do something>

Tuesday, 22 April 14

Page 10: Let me tell you a story

Tuesday, 22 April 14

Page 11: Let me tell you a story

“A   boundary   object   is   a   concept   in  sociology  to  describe  informa7on  used  in  different  ways   by   different   communi7es.  They   are   plas7c,   interpreted   differently  across   communi7es   but   with   enough  immutable  content  to  maintain  integrity”  

-­‐-­‐Wikipedia

User Stories are Boundary Objects

Tuesday, 22 April 14

Page 12: Let me tell you a story

-- Leigh & Griesemer

Tuesday, 22 April 14

Page 13: Let me tell you a story

“They are weakly structured in common use, and become strongly structured in individual-site use. They may be abstract or concrete.

-- Leigh & Griesemer

Tuesday, 22 April 14

Page 14: Let me tell you a story

“They are weakly structured in common use, and become strongly structured in individual-site use. They may be abstract or concrete.

They have different meanings in different social worlds but their structure is common enough to more than one world to make them recognizable means of translation.

-- Leigh & Griesemer

Tuesday, 22 April 14

Page 15: Let me tell you a story

“They are weakly structured in common use, and become strongly structured in individual-site use. They may be abstract or concrete.

They have different meanings in different social worlds but their structure is common enough to more than one world to make them recognizable means of translation.

The creation and management of boundary objects is key in developing and maintaining coherence across intersecting social worlds.”

-- Leigh & Griesemer

Tuesday, 22 April 14

Page 16: Let me tell you a story

Tuesday, 22 April 14

Page 17: Let me tell you a story

http://www.agileproductdesign.com/blog/dont_know_what_i_want.html

Depth first (incremental)

Tuesday, 22 April 14

Page 18: Let me tell you a story

http://www.agileproductdesign.com/blog/dont_know_what_i_want.html

Breadth first (iterative)

Tuesday, 22 April 14

Page 19: Let me tell you a story

Iterative and Incremental

http://itsadeliverything.com/revisiting-the-iterative-incremental-mona-lisa

Tuesday, 22 April 14

Page 20: Let me tell you a story

Parallel development

Tuesday, 22 April 14

Page 21: Let me tell you a story

The one where...

User stories & acceptance

criteriaExamples

Tuesday, 22 April 14

Page 22: Let me tell you a story

The one where...

User stories & acceptance

criteriaExamples

Tuesday, 22 April 14

Page 23: Let me tell you a story

The one where...

User stories & acceptance

criteriaExamples

Open questions

Tuesday, 22 April 14

Page 24: Let me tell you a story

The one where...

User stories & acceptance

criteriaExamples

Open questions

Domain learning

Tuesday, 22 April 14

Page 25: Let me tell you a story

Tuesday, 22 April 14

Page 26: Let me tell you a story

•Must support VISA•Does not need to support MasterCard, Switch•...•Customers should be prevented from entering invalid credit card number• ...

Credit Card ProcessingAcceptance criteria:

Tuesday, 22 April 14

Page 27: Let me tell you a story

The one where ....... we validate content of the card number

User Enters Outcome

@£$%@£$%@£$%@£$% Error message

4575 9879 6752 1245 Error message

4.57599E+15 OK

Tuesday, 22 April 14

Page 28: Let me tell you a story

Acceptance Criteria(Rules)

Examples

User Story

Tuesday, 22 April 14

Page 29: Let me tell you a story

Acceptance Criteria(Rules)

ExamplesExamples help us to explore and test the acceptance criteria together

User Story

Tuesday, 22 April 14

Page 30: Let me tell you a story

Tuesday, 22 April 14

Page 31: Let me tell you a story

In order to introduce a competitive elementparticipants should be able toget points for a successful answer

SCORING THE GAME

Tuesday, 22 April 14

Page 32: Let me tell you a story

Get points for a correct answer

Acceptance criteria:

Tuesday, 22 April 14

Page 33: Let me tell you a story

Is it only the first team that gets the answer right that

scores?

Do teams start with a score of 0?

Are all answers worth the same?

Can the score be negative?

What happens if the answer is wrong?

Tuesday, 22 April 14

Page 34: Let me tell you a story

Teams start with a score of 0

Acceptance criteria:

Correct answers score pointsIncorrect answers lose pointsScore can’t be negativePoints awarded decrease ...

Tuesday, 22 April 14

Page 35: Let me tell you a story

Teams start with a score of 0

Acceptance criteria:

Tuesday, 22 April 14

Page 36: Let me tell you a story

Feature: Team Scoring Teams start with zero score

Scenario: Score starts at 0 Given I register a team When I retrieve my score Then my score is 0

Tuesday, 22 April 14

Page 37: Let me tell you a story

Tuesday, 22 April 14

Page 38: Let me tell you a story

Correct answer gets 10 points

Acceptance criteria:

Tuesday, 22 April 14

Page 39: Let me tell you a story

Feature: Team Scoring Teams start with zero score Correct answer gets points

Scenario: Score starts at 0 Given I register a team Then my score is 0

Scenario: Correct answer gets 10 points Given I register a team When I submit a correct answer Then my score is 10

Tuesday, 22 April 14

Page 40: Let me tell you a story

Points awarded for an answer depend on its difficulty

Acceptance criteria:

Tuesday, 22 April 14

Page 41: Let me tell you a story

Feature: Team Scoring Teams start with zero score. Correct answer gets points depending on how difficult it is.

Scenario: Score starts at 0

Scenario: Correct easy answer scores 10 Given I register a team When I submit a correct easy answer Then my score is 10

Scenario: Correct hard answer scores 50 Given I register a team When I submit a correct hard answer Then my score is 50

Tuesday, 22 April 14

Page 42: Let me tell you a story

Acceptance criteria

User Story

Examples

Feature: Team Scoring Teams start with zero score. Correct answer gets points depending on how difficult it is.

Scenario: Score starts at 0 Given I register a team Then my score is 0

Scenario: Correct easy answer scores 10 Given I register a team When I submit a correct easy answer Then my score is 10

Scenario: Correct hard answer scores 50 Given I register a team When I submit a correct hard answer Then my score is 50

Tuesday, 22 April 14

Page 43: Let me tell you a story

Acceptance criteria

User Story

Examples

Feature: Team Scoring Teams start with zero score. Correct answer gets points depending on how difficult it is.

Scenario: Score starts at 0 Given I register a team Then my score is 0

Scenario: Correct easy answer scores 10 Given I register a team When I submit a correct easy answer Then my score is 10

Scenario: Correct hard answer scores 50 Given I register a team When I submit a correct hard answer Then my score is 50

Tuesday, 22 April 14

Page 44: Let me tell you a story

Acceptance criteria

User Story

Feature: Team Scoring Teams start with zero score. Correct answer gets points depending on how difficult it is.

Scenario: Score starts at 0 Given I register a team Then my score is 0

Scenario: Correct easy answer scores 10 Given I register a team When I submit a correct easy answer Then my score is 10

Scenario: Correct hard answer scores 50 Given I register a team When I submit a correct hard answer Then my score is 50

Tuesday, 22 April 14

Page 45: Let me tell you a story

Acceptance criteria

User Story

Feature: Team Scoring Teams start with zero score. Correct answer gets points depending on how difficult it is.

Scenario: Score starts at 0 Given I register a team Then my score is 0

Scenario: Correct easy answer scores 10 Given I register a team When I submit a correct easy answer Then my score is 10

Scenario: Correct hard answer scores 50 Given I register a team When I submit a correct hard answer Then my score is 50

Tuesday, 22 April 14

Page 46: Let me tell you a story

User Story

Feature: Team Scoring Teams start with zero score. Correct answer gets points depending on how difficult it is.

Scenario: Score starts at 0 Given I register a team Then my score is 0

Scenario: Correct easy answer scores 10 Given I register a team When I submit a correct easy answer Then my score is 10

Scenario: Correct hard answer scores 50 Given I register a team When I submit a correct hard answer Then my score is 50

Tuesday, 22 April 14

Page 47: Let me tell you a story

User Story

Feature: Team Scoring Teams start with zero score. Correct answer gets points depending on how difficult it is.

Scenario: Score starts at 0 Given I register a team Then my score is 0

Scenario: Correct easy answer scores 10 Given I register a team When I submit a correct easy answer Then my score is 10

Scenario: Correct hard answer scores 50 Given I register a team When I submit a correct hard answer Then my score is 50

Tuesday, 22 April 14

Page 48: Let me tell you a story

Feature: Team Scoring Teams start with zero score. Correct answer gets points depending on how difficult it is.

Scenario: Score starts at 0 Given I register a team Then my score is 0

Scenario: Correct easy answer scores 10 Given I register a team When I submit a correct easy answer Then my score is 10

Scenario: Correct hard answer scores 50 Given I register a team When I submit a correct hard answer Then my score is 50

Tuesday, 22 April 14

Page 49: Let me tell you a story

-JVM

Seb Rose,

Tuesday, 22 April 14

Page 50: Let me tell you a story

-JVM

Seb Rose,

Availa

ble 20

14

(hopef

ully)

Tuesday, 22 April 14

Page 51: Let me tell you a story

Seb  Rose

TwiBer:     @sebrose

Blog:       www.claysnow.co.uk

E-­‐mail:     [email protected]

Tuesday, 22 April 14