1. 7

Does anyone have experience with trying/implementing the ideas/practices outlined in Gojko Adzic’s Specification by Example?

I read the key ideas and was somewhat skeptical. Instead of being outright dismissive, I got the book and have started reading it. I choose to reserve my judgement until I have finished.

Nevertheless, this part of the key ideas (and it shows up early in the book) strikes me as unpalatable to most:

Living documentation is the end-product of Specification by Example. To create a living documentation system, many teams have ended up designing a domain specific language for specifications and tests.

The first thing that came to mind when I read this was “UML for managers and stakeholders”. That is, an executable specification (beyond the test code), which has been an elusive goal in software development for some time. The book has case studies where the approach has worked. I’m wondering if anyone has been through the process or has thoughts on the key ideas (or has read the book, etc.). Is it plausible? Something to be considered? Silver bullet snake oil?

(I’m coming from a background where the thesis of The Source Code Is The Design has been the most accurate way to characterize the whole software development process. Adzic’s book seems to be a version of that, although perhaps not what Jack Reeves had in mind. This is why I am interested in looking at the ideas more closely.)

  1.  

  2. 3

    I’ve done a little bit of work with the SbE approach and although I can’t present any long-term results, I do find that the process forces one to have more precise communication with the client, which is a good thing, and encourages developers to think about why a feature is being added. I would say that I am cautiously optimistic about it, keeping in mind that the executable specifications play a different role from automated tests and shouldn’t be conflated.

    I have also found that in some domains, it is difficult to concisely express requirements in a way that’s compatible with existing tools, although that’s a minor complaint.

    I have wondered if the next step of SbE is some kind of hybrid with literate programming.