Specification by Example – book review

I’ve just finished reading Specification By Example. Sorry Gojko for taking so long!

Specification by Example is an interesting read. I was going to paraphrase what it’s about but it’s best to come straight from the source:

“Specification by Example is a set of process patterns that helps teams build the right software product. With Specification by Example, teams write just enough documenta- tion to facilitate change effectively in short iterations or in flow-based development.”

I really like the idea of Living Documentation. It’s an interesting idea which I believe could solve a number of communication problems in many businesses.

As Gojko says:

“Living documentation is a source of information about system functionality that’s as reliable as programming language code but much easier to access and understand.”

The book is incredibly easy to read and is split in to many different sections, each one building on the idea of Living Documentation, and each one accompanied by a number of quotes from people implenting these ideas.

The book has a compelling introduction which sets the scene well before moving through the various stages of thinking about Specifying through examples:

  • Key Benefits
  • Key Process Patterns
  • Living Documentation
  • Initiating the Changes
  • Deriving Scope From Goals
  • Specifying Collaboratively
  • Illustrating using examples
  • Refining the specification
  • Automating validation without changing specifications
  • Validating Frequency
  • Evolving a documentation system
  • Case Studies
  • Appendix

Each section builds on the idea of specifying using examples, but there were a couple of standout chapters for me, particularly Specifying Collaboratively and Validating Frequently. I enjoyed these sections because they hit a chord with my own thinking and some of the challenges I’ve seen in organising automation (and story chats).

It’s also very interesting reading about the companies Gojko interviewed in the Case Studies section, especially when these companies have incredible well respected people offering these insights.

I took away a huge amount from this book. It was especially well timed as we embark on a more “specification by example” approach to cover some of our automation here. It’s good to have some examples of approaches for legacy products to refer to when we try it.

Sometimes books only concentrate on the greenfield approach, but here Gojko has added lots of advice for people in differing contexts.

Although the book is really aimed at people looking to automate using examples I still think this book would be useful for others who have a general interest in automation. Some of the hints and tips I took from the book were more agile process related too, so I think there could be something for everyone in it.