given/when/then-ready sprint planning (agile tour vienna 2015)

30
Gáspár Nagy coach trainer bdd addict creator of specflow @gasparnagy [email protected] Gáspár Nagy coach trainer bdd addict creator of specflow @gasparnagy [email protected] Given/When/Then-ready sprint planning Agile Tour Vienna • 21/11/2015

Upload: gaspar-nagy

Post on 08-Feb-2017

1.338 views

Category:

Software


2 download

TRANSCRIPT

Gáspár Nagycoach • trainer • bdd addict • creator of specflow

@gasparnagy • [email protected]

Gáspár Nagycoach • trainer • bdd addict • creator of specflow

@gasparnagy • [email protected]

Given/When/Then-ready sprint planningAgile Tour Vienna • 21/11/2015

Copyright © Gaspar NagyCopyright © Gaspar Nagy

specsolutions.eu/bddaddict

bdd addict

given.when.then

CAUTION!

on stage

Copyright © Gaspar NagyCopyright © Gaspar Nagy

What is BDD?

Copyright © Gaspar NagyCopyright © Gaspar Nagy

An Oversimplified BDD Process

Scenario: Books can be added to the shopping basket

Given the following books

| Author | Title |

| Martin Fowler | Analysis Patterns |

| Gojko Adzic | Bridging the Communication Gap |

And my shopping basket is empty

When I add the book “Analysis Patterns” to my shopping basket

Then my shopping basket should contain 1 copy of “Analysis Patterns”

Copyright © Gaspar NagyCopyright © Gaspar Nagy

The Feature File

Scenario: Books can be added to the shopping basket

Given the following books

| Author | Title |

| Martin Fowler | Analysis Patterns |

| Gojko Adzic | Bridging the Communication Gap |

And my shopping basket is empty

When I add the book “Analysis Patterns” to my shopping basket

Then my shopping basket should contain 1 copy of “Analysis Patterns”

Who writes the

scenarios?How do you

set the title of

the scenario?

Can I have multiple

when/then steps?

Copyright © Gaspar NagyCopyright © Gaspar Nagy

If you have these questions you are probably on the wrong track…

Copyright © Gaspar NagyCopyright © Gaspar Nagy

The Sprint Planning

Copyright © Gaspar NagyCopyright © Gaspar Nagy

Demo: Planning the Pizza Selection Story

Copyright © Gaspar NagyCopyright © Gaspar Nagy

Explain the story as a PO

Copyright © Gaspar NagyCopyright © Gaspar Nagy

Let’s write a Gherkin from the result

Scenario: ...

Given ...

When ...

Then ...

Copyright © Gaspar NagyCopyright © Gaspar Nagy

De-briefing

• PO was unprepared

• We discussed the topics in a foreign language

• The domain was known, but not very exact

• Quality of notes?

• How easy it to write the first scenario?

• Quality of scenario?

Copyright © Gaspar NagyCopyright © Gaspar Nagy

An efficient meeting…

Copyright © Gaspar NagyCopyright © Gaspar Nagy

Demo: Planning the Pizza Selection Story

Copyright © Gaspar NagyCopyright © Gaspar Nagy

Participate in the facilitated discussion as PO

Copyright © Gaspar NagyCopyright © Gaspar Nagy

Should be able to add a pizza to the basket

Scenario: Should be able to add a pizza to the basket

Given the following pizza menu

| name | ingredients |

| Aslak Hellesøy | Cucumber, Gherkin, Pickles |

| Uncle Bob | Chicken, Low cal cheese |

| Chris Matts | Garlic, Wasabi, Tomato |

And the shopping basket is empty

When I choose a “Chris Matts” pizza

Then my basket contains 1 “Chris Matts” pizza

Copyright © Gaspar NagyCopyright © Gaspar Nagy

Should be able to add extras to the chosen pizza

Scenario: Should be able to add extras to the chosen pizza

Given the following pizzas in the basket

| pizza | extras |

| Aslak Hellesøy | - |

| Chris Matts | - |

And the “Aslak Hellesøy” pizza is selected from the basket

When I add extra cheese

And I add extra cucumber

Then the basket should contain

| pizza | extras |

| Aslak Hellesøy | +cheese +cucumber |

| Chris Matts | - |

Copyright © Gaspar NagyCopyright © Gaspar Nagy

How It's Made

Copyright © Gaspar NagyCopyright © Gaspar Nagy

Well guided planning meeting can improve the “BDD-efficiency” quite much

• Someone needs to facilitate the discussion – not the PO

• The facilitation can be rotated so that everyone gets practice

• The facilitator can guide the discussion with• Asking questions

• Moderating (stopping?) discussions

• Everyone can ask of course…

Copyright © Gaspar NagyCopyright © Gaspar Nagy

#1 – Pick a guide line

• Choose a theme that you can use to order the questions

• The “sequence of actions” is usually good• ie. “What you do first?”

• If you use story mapping for planning the stories, this comes quite naturally

Copyright © Gaspar NagyCopyright © Gaspar Nagy

#2 – Keep collecting acceptance criteria

• Once you hear an important rule/behavior/check, note it down as an acceptance criterion

• Don’t forget that AC is not necessarily text, but formulas, wireframes or anything that describes the required behavior

Copyright © Gaspar NagyCopyright © Gaspar Nagy

#3 – Make notes visible to everyone

• Writing them up to the whiteboard can work well

• Using (and sharing on projector) a notepad, OneNote or SpecLog is also very good

• Pro: stored already in a searchable form, usually better visible (zoom), easy to go back to earlier notes

• Con: harder to get a full overview

• Stop the discussion while the AC is captured

• The team should have an agreement on the captured result• Was this really what we were discussing about?

Copyright © Gaspar NagyCopyright © Gaspar Nagy

#4 – Collect examples

• Ask for examples if not provided

• Examples can help • understanding the topic

• discover misunderstandings

• keep the requirements real

• Discover more: Specification by Example, Example mapping

Copyright © Gaspar NagyCopyright © Gaspar Nagy

#5 – Write a glossary

• As a facilitator, keep watching the domain terms and their usage

• Highlight if they are used inconsistently

• Suggest choosing a term• “Why don’t we give this a name?”

• The terms can be just highlighted in the notes, but you can also build up a glossary as the discussion goes

• Discover more: Domain Driven Design

Copyright © Gaspar NagyCopyright © Gaspar Nagy

+1 – Formulate the scenarios in Gherkin

• Not necessarily in the planning meeting

• Just before you start implementing the story works usually

• Don’t do it alone

• Try to find broader agreement especially for the first scenarios in a certain topic

• At this point, you are not discussing the behavior, but finalizing the ubiquitous language

• Discover more: Three Amigos

Copyright © Gaspar NagyCopyright © Gaspar Nagy

One page summary

#1 – Pick a guide line

#2 – Keep collecting acceptance criteria

#3 – Make notes visible to everyone

#4 – Collect examples

#5 – Write a glossary

Copyright © Gaspar NagyCopyright © Gaspar Nagy

What about my answers?

Who writes the

scenarios?

How do you

set the title of

the scenario?

Can I have multiple

when/then steps?

Copyright © Gaspar NagyCopyright © Gaspar Nagy

The answers

• Who writes the scenarios?• It does not matter, because we are all on the same page regarding the behavior. But it

makes sense if a developer is typing it in with a tester or PO sitting next to him/her.

• How do you set the title of the scenario?• You never set it, you start from the acceptance criterion that will be the title.

• Can I have multiple when/then steps?• The scenario is the formalization of an AC – a simple check. For that you usually

need only one when step and only one or two then steps.

Copyright © Gaspar NagyCopyright © Gaspar Nagy

Try is at home!

Gáspár Nagycoach • trainer • bdd addict • creator of specflow

@gasparnagy • [email protected]

Gáspár Nagycoach • trainer • bdd addict • creator of specflow

@gasparnagy • [email protected]

Thank you!

Copyright © Gaspar NagyCopyright © Gaspar Nagy

specsolutions.eu/bddaddict

bdd addict

given.when.then

CAUTION!

on the loose