Upload
carlos-ble
View
230
Download
2
Embed Size (px)
Citation preview
BDD Tips & Tricks
Carlos Blé Borja Navarro @carlosble @pnajrob
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.
Examples != Acceptance Criteria
Examples revealconcrete details
Whereas acceptance criteria are an abstraction
3
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
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
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
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
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
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
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
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