Specification by Example is Gojko's third book on this subject. The first book, Fitness.net, was very technical and tool oriented. The second book, Bridging the Communication Gap, was a lot more coordination oriented. Now his third book, this one, he describes practices that teams he studied have used. From that perspective, this book is the follow-up of Bridging and might go a little fast if you are totally unfamiliar with the subject.
The book is divided in three parts. The first part is mainly introduction where Gojko describes the benefits and the key practices that will be described in this book. The second part is the actual description of the key practices and the third part are different case studies about different teams in different companies that have adopted specification by example.
The key practices that are introduced in part one and described in part 2 are:
- Deriving scope from goals
- Specifying collaboratively
- Illustrating using example
- Refining the specification
- Automating without changing the specification
- Validating frequently
- Evolving a documentation system
Deriving scope from goals discusses how customers main concert is not the software but solving a problem and developers shouldn't just expect to get the requirements from the customer but work together with them to help them to solve their problem in the best way. Specifying collaboratively covers how the customer and the teams will cooperatively define the specifications that the team will be implementing later. Illustrating using examples explains how these specifications can be described best by moving from abstract requirements to concrete examples. Refining the specification then takes the essence out of the requirements and describes them in the clearest possible way. After that, the specification can be automated without changing the specification and this chapter gives tips on how to do that. When the specifications are automated, you want to run them frequently which is described in the validate frequently chapter. Evolving a documentation system describes how the specifications become the documentation of what the system does. They stay in-sync with the system because they are continuously executed.
The third part described a couple of case studies of companies that implemented specification by example. I really loved these case studies and they were written very well.
I've read both of Gojko's earlier books and had high expectations for this book. I was not disappointed, it is an excellent follow-up and will be my standard book reference on Specification by Example (or A-TDD as it is also called). The book is not perfect though. As times I felt there was too much focus on documentation and too little on collaboration. Still, I'd rate this book five stars and recommend everyone in an Agile development team to read this and practice specification by example.