Nov 30, 2016

Finished Reading: Specification by Example

Just finished reading the last book of November: Specification by Example, written by Gojko Adzic and published in 2011 by Manning Publications.

Specification by Example is a book about specifications, testing and software delivery. The full idea is sort of simple, you work in collaboration with programers and stakeholders to define human-readable specifications, that you can run continuously during your continuous integration process, you iterate as you would any given day and in the long run you can use those specifications to document your system. Pretty straightforward.

Personally, I agree with everything Gojko said in this book, the difficult thing to me is not to implement the process itself; it is more the fact that introducing something like this will take some time, there’s the learning curve as well as the human friction when adding a new step to the workflow. Pretty much everything becomes “slower” for everybody, or that’s what everybody thinks.

In my experience having a system with no runnable tests, may seem like a good idea in the beginning because hey you’re implementing everything super fast; but in the long term it’s a huge liability, you’re basically blind when trying to fix bugs or make improvements, there’s no safety net, not to mention there’s no actual up-to-date documentation explaining any algorithms you implemented or system workflows. You’re in dark.

Specification by Example is old, but I still believe most of the topics covered make sense, specially because there’s no specific reference to a tool, it’s more like how you write your specifications and not what you use to write your specifications.