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

Post on 13-Apr-2017

642 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Given/When/Then-ready

sprint planning

Gáspár Nagy

coach • trainer • bdd addict • creator of specflow

@gasparnagy • gaspar@specsolutions.eu

What is BDD?

behavior driven development

desarrollo impulsado por el

comportamiento

development driven by behavior

[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

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”

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”

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?

If you have these questions you are probably on

the wrong track…

THE SPRINT PLANNING

Demo: Planning the Pizza

Selection Story

Explain the story as a PO!

Let’s write a Gherkin from the result

Scenario: ...

Given ...

When ...

Then ...

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?

An efficient meeting…

Demo: Planning the Pizza

Selection Story

Participate in the facilitated

discussion as PO!

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?

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

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

HOW IT'S MADE

Collaborate on requirements!

Well guided planning meeting can improve

the “BDD-efficiency” quite much

Example Mapping

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

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

#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

#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

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

#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

#5 – Split the story if necessary

• The map can help you to feel if the topics

we have discussed are too much

+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

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)

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?

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.

Try it at home!

Thank you!

Gáspár Nagy@gasparnagy

gaspar@specsolutions.eu

http://specsolutions.eu

More information on BDD at

http://bddaddict.com

top related