11
BDD Tips & Tricks Carlos Blé Borja Navarro @carlosble @pnajrob

BDD Tips at CukeUp 2015 London

Embed Size (px)

Citation preview

Page 1: BDD Tips at CukeUp 2015 London

BDD Tips & Tricks

Carlos Blé Borja Navarro @carlosble @pnajrob

Page 2: BDD Tips at CukeUp 2015 London

Context

Largest automotive company in the Canary Islands operating also in Europe, South America and Africa. Importers, dealers, garages, steering parts, rentals... 30+ developers involved

8 million lines of code in the old system.

Page 3: BDD Tips at CukeUp 2015 London

Examples != Acceptance Criteria

Examples revealconcrete details

Whereas acceptance criteria are an abstraction

3

Page 4: BDD Tips at CukeUp 2015 London

As garage organiserI want to assign jobs to mechanicsTo balance the workload in the garage

Acceptance Criteria:

- Jobs are assigned to a single mechanic on a particular day without specifying the start time

- Jobs have different priorities

- Ongoing jobs can't be assigned from one mechanic to another

- A finished job can't be assigned to any other mechanic

Page 5: BDD Tips at CukeUp 2015 London

As garage organiserI want to assign jobs to mechanicsTo balance the workload in the garage

Acceptance Criteria:

- Jobs are assigned to a single mechanic on a particular day – no matter at what time

- Jobs have different priorities

- Ongoing jobs can't be assigned from one mechanic to another

- A finished job can't be assigned to any other mechanic

4

Page 6: BDD Tips at CukeUp 2015 London

Background:“Paco” is a mechanic

Scenario: Assign job to mechanicGiven the job "Change pad brakes" is in the unassigned work queueAnd “Paco”'s agenda for tomorrow is emptyWhen the organizer assigns the job to “Paco” for tomorrowThen the first thing for him to work on tomorrow is that jobAnd the job is no longer in the unassigned work queue

Scenario: Prioritize jobs Given “Paco”'s queue for tomorrow contains "Change oil" & “Inspection”When the organizer prioritizes the job “Inspection” for “Paco”Then  first thing for him to work on tomorrow is “Inspection”

5

Page 7: BDD Tips at CukeUp 2015 London

Scenario: Ongoing jobs can't be reassignedGiven that “Paco”'s is working on "Inspection”When the organiser tries to assign the job to another mechanicThen  the organiser is told that “Paco” is already working on that jobAnd   it remains assigned to “Paco”

Scenario: Finished jobs can't be reassignedGiven that “Paco” is done with job “Change pad brakes”When the organiser tries to assign it to another mechanicThen  the organiser is told that job is finished and can't be reassigned

# Notes:# Mechanic agenda is stored in table T in the legacy system.

# UX Suggestions:# Drag & drop could be a good metaphor for the assignments

6

Page 8: BDD Tips at CukeUp 2015 London

Recap

Acceptance criteria specify what should be done

Examples help understand the criteria

Additional information may be useful

When an acceptance criterion is a long line...

When an example doesn't reveal the criterion...

7

E

AC AC

AC

E E

Heuristic

Page 9: BDD Tips at CukeUp 2015 London

As garage organiserI need to know what jobs are in the unassigned work queue To assign jobs to mechanics

Acceptance Criteria:

- Jobs are in the queue when: - they are not assigned to a particular mechanic and the car is in the garage.

8

Page 10: BDD Tips at CukeUp 2015 London

Works for us

Short user stories that we can develop in two days

Vertical user stories non-explicit technical stuff

Business valuable examples no state

Deliver new features every week or two weeks in the

pursuit of feedback

9

Page 11: BDD Tips at CukeUp 2015 London

We love feedback!

Features are not real until they go live and users embrace them. Don't plan too far away!

Conclusion: listen to your users!

Release Feedback

10