given/when/then-ready sprint planning (expo:qa'16)

35
Given/When/Then-ready sprint planning Gáspár Nagy coach trainer bdd addict creator of specflow @gasparnagy [email protected]

Upload: gaspar-nagy

Post on 13-Apr-2017

637 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Given/When/Then-ready sprint planning (expo:QA'16)

Given/When/Then-ready

sprint planning

Gáspár Nagy

coach • trainer • bdd addict • creator of specflow

@gasparnagy • [email protected]

Page 2: Given/When/Then-ready sprint planning (expo:QA'16)
Page 3: Given/When/Then-ready sprint planning (expo:QA'16)

What is BDD?

Page 4: Given/When/Then-ready sprint planning (expo:QA'16)

behavior driven development

desarrollo impulsado por el

comportamiento

development driven by behavior

Page 5: Given/When/Then-ready sprint planning (expo:QA'16)

[HttpPost]public ActionResult Add(int bookId){

BookShopEntities db = new BookShopEntities();var shoppingCart = GetShoppingCart();

var existingLine = shoppingCart.Lines.SingleOrDefault(l => l.Book.Id == bookId);

if (existingLine != null){

existingLine.Quantity++;}else{

var book = db.Books.First(b => b.Id == bookId);

OrderLine newOrderLine = new OrderLine();newOrderLine.Book = book;newOrderLine.Quantity = 1;shoppingCart.AddLineItem(newOrderLine);

}

ViewData.Model = shoppingCart;return RedirectToAction("Index");

}

An Oversimplified BDD Process

implement

feedback

Page 6: Given/When/Then-ready sprint planning (expo:QA'16)

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”

Page 7: Given/When/Then-ready sprint planning (expo:QA'16)

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”

Page 8: Given/When/Then-ready sprint planning (expo:QA'16)

The Feature File

Escenario: Los libros se pueden añadir a la cesta de la compra

Dadas los siguientes libros

| Author | Title |

| Martin Fowler | Analysis Patterns |

| Gojko Adzic | Bridging the Communication Gap |

Y mi cesta está vacía

Cuando agrego el libro "Analysis Patterns" a mi cesta

Entonces mi cesta debe contener 1 copia de “Analysis Patterns”

Who writes the scenarios?

How do you set the title of the

scenario?

Can I have multiple when/then steps?

Page 9: Given/When/Then-ready sprint planning (expo:QA'16)

If you have these questions you are probably on

the wrong track…

Page 10: Given/When/Then-ready sprint planning (expo:QA'16)

THE SPRINT PLANNING

Page 11: Given/When/Then-ready sprint planning (expo:QA'16)

Demo: Planning the Pizza

Selection Story

Page 12: Given/When/Then-ready sprint planning (expo:QA'16)

Explain the story as a PO!

Page 13: Given/When/Then-ready sprint planning (expo:QA'16)

Let’s write a Gherkin from the result

Scenario: ...

Given ...

When ...

Then ...

Page 14: Given/When/Then-ready sprint planning (expo:QA'16)

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?

Page 15: Given/When/Then-ready sprint planning (expo:QA'16)

An efficient meeting…

Page 16: Given/When/Then-ready sprint planning (expo:QA'16)

Demo: Planning the Pizza

Selection Story

Page 17: Given/When/Then-ready sprint planning (expo:QA'16)

Participate in the facilitated

discussion as PO!

Page 18: Given/When/Then-ready sprint planning (expo:QA'16)

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?

Page 19: Given/When/Then-ready sprint planning (expo:QA'16)

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

Page 20: Given/When/Then-ready sprint planning (expo:QA'16)

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 | - |

Page 21: Given/When/Then-ready sprint planning (expo:QA'16)

HOW IT'S MADE

Page 22: Given/When/Then-ready sprint planning (expo:QA'16)

Collaborate on requirements!

Well guided planning meeting can improve

the “BDD-efficiency” quite much

Page 23: Given/When/Then-ready sprint planning (expo:QA'16)

Example Mapping

http://bit.ly/examplemapping (Matt Wynne)

Page 24: Given/When/Then-ready sprint planning (expo:QA'16)

#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…

Page 25: Given/When/Then-ready sprint planning (expo:QA'16)

#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

Page 26: Given/When/Then-ready sprint planning (expo:QA'16)

#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

Page 27: Given/When/Then-ready sprint planning (expo:QA'16)

#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?

Page 28: Given/When/Then-ready sprint planning (expo:QA'16)

#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

Page 29: Given/When/Then-ready sprint planning (expo:QA'16)

#5 – Split the story if necessary

• The map can help you to feel if the topics

we have discussed are too much

Page 30: Given/When/Then-ready sprint planning (expo:QA'16)

+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

Page 31: Given/When/Then-ready sprint planning (expo:QA'16)

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)

Page 32: Given/When/Then-ready sprint planning (expo:QA'16)

What about my answers?

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?

Page 33: Given/When/Then-ready sprint planning (expo:QA'16)

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.

Page 34: Given/When/Then-ready sprint planning (expo:QA'16)

Try it at home!

Page 35: Given/When/Then-ready sprint planning (expo:QA'16)

Thank you!

Gáspár Nagy@gasparnagy

[email protected]

http://specsolutions.eu

More information on BDD at

http://bddaddict.com