Then -ready sprint planning

Given/When/Then -ready sprint planning with Example Mapping Agilia Budapest 2016 12/10/2016 Gáspár Nagy coach • trainer • bdd addict • creator of spec...
Author: Alberta Harris
17 downloads 0 Views 1MB Size
Given/When/Then -ready sprint planning with Example Mapping Agilia Budapest 2016 12/10/2016 Gáspár Nagy coach • trainer • bdd addict • creator of specflow @gasparnagy • [email protected]

CAUTION!

bdd addict on stage

given.when.then

bddaddict.com Copyright © Gaspar Nagy

This talk was inspired by…

Copyright © Gaspar Nagy

What is BDD?

Copyright © Gaspar Nagy

Classic model

implement

[HttpPost] public ActionResult Answer(int answer) { TriviaEntities db = new TriviaEntities(); var question = db.FindQuestion(CurrentQuestion); if (question.Type == QuestionType.Easy) { db.AddScore(question, user, 10); } else { db.AddScore(question, user, 50); } var model = new GameModel { Score = db.GetScore(question, user) }; return View(model);

feedback }

Copyright © Gaspar Nagy

BDD Process Collaboration

Automation with Cucumber/SpecFlow

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

Copyright © Gaspar Nagy

The Feature File Who writes the scenarios?

How do you set the title of the scenario? Scenario: Correct easy answer scores 10 Given I register a team When I submit a correct easy answer Then my score should be 10 Can I have multiple when/then steps?

Copyright © Gaspar Nagy

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

Copyright © Gaspar Nagy

The Sprint Planning

Copyright © Gaspar Nagy

Demo: Planning the Pizza Selection Story

Copyright © Gaspar Nagy

Explain the story as a PO

Copyright © Gaspar Nagy

Let’s write a Gherkin from the result

Scenario: ... Given ... When ... Then ...

Copyright © 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 Nagy

An efficient collaboration…

Copyright © Gaspar Nagy

Demo: Planning the Pizza Selection Story

Copyright © Gaspar Nagy

Participate in the facilitated discussion as PO

Copyright © Gaspar Nagy

Review • What was different from the first time? • Did we cover more or less functionality than the last time? • What do you think the different coloured cards / stickies are supposed to represent? • How did capturing each of those help to keep the discussions on track? • Do you think the story is ready to implement now? Why? Copyright © 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 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 Nagy

How It's Made

Copyright © Gaspar Nagy

Collaborate on requirements!

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

Copyright © Gaspar Nagy

Example Mapping

http://bit.ly/example mapping (Matt Wynne)

Copyright © Gaspar Nagy

#0 – Choose a facilitator • 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 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 Nagy

#2 – Keep collecting rules (acceptance criteria) and examples • Once you hear an important rule/behavior/check, note it down as a rule and an illustrating example • Don’t forget that an example is not necessarily text, but formulas, wireframes or anything that describes the required behavior • Examples can help • understanding the topic • discover misunderstandings • keep the requirements real

Copyright © Gaspar Nagy

#3 – Make notes visible to everyone • Write them on index cards or stickies • 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 rule/example is captured • The team should have an agreement on the captured result • Was this really what we were discussing about? Copyright © Gaspar Nagy

#4 – Collect questions

• If something cannot be answered or needs further research/investigation – capture it as a questions • Captured questions can help • to avoid re-discussing the same topic again and again • to have a clear list of topics we need to investigate

Copyright © Gaspar Nagy

#5 – Split the story if necessary

• The map can help you to feel if the topics we have discussed are too much

Copyright © 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 Nagy

One page summary #0 – Choose a facilitator #1 – Pick a guide line #2 – Keep collecting rules (acceptance criteria) and examples #3 – Make notes visible to everyone #4 – Collect questions #5 – Split story if necessary http://bit.ly/examplemapping (Matt Wynne) Copyright © Gaspar Nagy

What about my answers? Who writes the scenarios?

How do you set the title of the scenario? Scenario: Correct easy answer scores 10 Given I register a team When I submit a correct easy answer Then my score should be 10 Can I have multiple when/then steps?

Copyright © 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 Nagy

Try is at home!

Copyright © Gaspar Nagy

CAUTION!

bdd addict newsletter

given.when.then

bddaddict.com Copyright © Gaspar Nagy

Thank you!

Gáspár Nagy coach • trainer • bdd addict • creator of specflow @gasparnagy • [email protected]