George Dinwiddie recently delivered a webinar, Distilling the Essence, on the topic of crafting good examples of acceptance criteria. From the blurb:
When creating our scenarios, we want to fully describe the desired functionality, but not over-describe it ... Which details should we leave visible, and which should we hide? ... [We will see how we can] distil our scenarios down to their essence and remove distracting incidental details.
I loved it and, naturally, wondered whether I could distil the essence of it. Here goes:
- Not just examples, but essential examples.
- An essential example promotes shared understanding, testability, clarity of intent.
- Remove incidental details; they obscure the important.
- Highlight essential details; they have the most communicative value.
- Essential details don't change with user interface, workflow, implementation technology.
- To help: name scenarios, abstract specifics, note explicit rules, conditions, and boundaries.
- Bottom-up is OK; you can iterate from the specific to the essence.
- Don't extract too much; totally generic is probably worse than too specific.
If that seems short, the webinar itself is admirably only about 15 minutes long, and that's mostly George giving worked examples of the approach.