Don't use examples when doing specification by example (sbe)
I really like all the ideas behind sbe:
- Collaborative environment
- Single source of truth
- "living" documentation
and, of course, examples!
As Wikipedia says, "Human brains are generally not that great at understanding abstractions or novel ideas/concepts when first exposed to them, but they’re really good at deriving abstractions or concepts if given enough concrete examples" (citation needed suspicious!)
We always use examples, comparisons, wire frames and Jedi pictures for our presentations. Why? I guess we get old and our brain gets lazy and feels more comfortable with something that starts it up or comparing with something that has already processed sometime ago.
But wait... the title said don't use examples! Why? Am I not human? Well, yes, but I have a big reason: if you have faced the shortest path problem, concurrency or heard about of a company named Mathematics inc. you might know it... yes! it is Dijkstra. He is one of the pioneers in computer science and even you don't like his style, his legacy is incredible.
In one of his articles, he talks about how examples can be misleading and he even questioned how we learn the natural numbers with apples (which can't be squared).
Even I'm considering to buy an abacus for my son, I'm not going to be so dramatic as Edsger: I would say explanations are very important and examples should be like a gift, an extra that will help you to understand the functionality. The point is that sometimes, an explaining paragraph can be so helpful and it can be valuable for the future. Some people say programming is like writing, you need to think about the reader and I think specification is the same: you need to think in the future, where some participants may not be there to ask them or where a new read leads you create a new scenario.
Disclosure: this article is not intended to look down on sbe or bdd. I really like them because of the advantages they give you. And, as a human, I use examples too, but I think that a longest description or any further explanation on the story is always welcome.
More Dijkstra materials here