A specification by example in this environment means most Given, When, Thens (GWT) won't pass until the fruits of several teams' labor are combined after a few sprints.
How to do BDD in this environment?
One idea is:
One feature=one set of GWTs. Each Scrum team implements their GWT steps based on what end-to-end testing means for them. This results in each GWT may have one to many steps.
This delivers:
- Business domain knowledge as the GWT language is kept at a business level.
- Traceability/understanding/perspective of how team deliverables contribute back to the feature.
- Incremental test automation for each teams' functionality, each sprint.
I'd love to hear more ideas or hear about people's experiences in doing BDD with component teams.
If an organization has their teams working on components of a feature (rather than feature teams--yeah, I know this is a bad way to organize engineering but that's the current situation), then features are never completed by just one team but are the result of several teams and multiple sprints. On average, a feature takes 2-4 sprints of time, 2-4 component teams of effort. The sprint starts and stops are synchronized across the teams.
A specification by example in this environment means most Given, When, Thens (GWT) won't pass until the fruits of several teams' labor are combined after a few sprints.
How to do BDD in this environment?