spec by example or how to teach people talk to each other
TRANSCRIPT
Real story• 15000 requirement• Regular change requests from client • Bad communications between dev, qa and analysts
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
ExampleRegion Category
existsService data
Service Address
Entity
Siberia Yes ID1Address
ID1 Address ABC Inc.
Siberia No ID1Address
ID2 Address ABC Inc.
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.
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
Behavior Driven Development (BDD)
• Split story into steps• Each step should be matched on code• Table from last example is our input
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