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]