When we build software for people (let’s call them stakeholders), it’s notoriously difficult to figure out exactly what they want us to build. In his famous essay, No Silver Bullet [Bro95], Fred Brooks says:
“The hardest single part of building a software system is deciding precisely what to build.”
We’ve all worked on projects where, because of a misunderstanding, code that we’d worked hard on for several days or more had to be thrown away. Better communication between developers and stakeholders is essential to help avoid this kind of wasted time. One technique that really helps facilitate this communication is the use of concrete examples to illustrate what we want the software to do.
By using real-world ...