spec by example or how to teach people talk to each other

42
Spec By Example or How to teach people talk to each other Andrei Rebrov

Upload: andrey-rebrov

Post on 27-Jul-2015

83 views

Category:

Software


0 download

TRANSCRIPT

Spec By Example orHow to teach people talk to each other

Andrei Rebrov

Once upon a time in a team far far away

QA

Analyst

Developer

They have a task

Lot’s of tasks

And that was a client, angry one

What’s happens to

them?

Real story• 15000 requirement• Regular change requests from client • Bad communications between dev, qa and analysts

First steps in right direction

Story Mapping

• Release backlog• Backlog estimation• Architectural concept

In the beginning of the project

Pre-planning phase

• Happens two times every week

• Whole team attend• 1 hour max

What we achieved

• Less issues• Less rework• Successful demo

But…

There were three sources of truth:

• Requirements• Test cases• Code

SPEC BY EXAMPLE

Impact mapping

Why do we need it• Check if we are still pursue business needs• Looking for alternate ways of execution• Focus on user stories

Example

Import into CRM using bus

Sell services over CRM

Sales person

Increase sales team effectiveness

Import to CRM using XML

QA and analyst pairing

Their job is

• Create a couple of examples

• Present them using table• Describe terminology

ExampleRegion Category

existsService data

Service Address

Entity

Siberia Yes ID1Address

ID1 Address ABC Inc.

Siberia No ID1Address

ID2 Address ABC Inc.

Let’s change pre-planning phase

New way• QA and analyst

explain examples• Diverse & Merge

Diverse & Merge• Split team into small groups• At least 1 group shouldn’t

have QA and analyst• Give them 15-20 minutes to

create new example• After all merge all examples in

one table

Final resultRegion Category

existsService found

Service data

Service

Address

Delivery address

Entity

Siberia Yes Yes ID1Address

ID1 Address

Address ABC Inc.

Siberia No Да ID1Address

ID2 Address

Address ABC Inc.

Table Compressing

What should we doWe should decrease amount of rows and columns in table:• Introduce parameters• Merge similar scenarios• Remove redundant data• Introduce new user stories

BeforeRegion Category

existsService found

Service data

Service

Address

Delivery address

Entity

Siberia Yes Yes ID1Address

ID1 Address

Address ABC Inc.

Siberia No Да ID1Address

ID2 Address

Address ABC Inc.

AfterCategory exists

Service found

Service data

Service Service data

Yes Yes Service Update Copy

No Yes Service Create Copy

Requirements=

Test cases

Automation time

Behavior Driven Development (BDD)

• Split story into steps• Each step should be matched on code• Table from last example is our input

Example

Summary

What we introduced• Impact mapping• QA + BA• Diverse & Merge• Data optimisation• BDD

What we achieved• Easy to trace requirements into

code• Every person in team knows

what we are building• Easy to estimate• QAs don’t waste their time• Simple demo preparation

Twitter@andrebrov

[email protected]

Skyperebrov.andrey

Q&A