Tuesday, July 18, 2023

How Software Specifications Really Work

I spent quite a bit of my technical writing career helping development teams with their software specifications. We had all sorts of them: functional specifications, architecture specifications, design specifications, and so on. My role was mostly editorial and also to maintain the documentation library for projects. 

It became clear very quickly that there was often a disconnect between what was in the specifications and what finally got built and rolled out. And the reason for that was almost always a difference in expectations between the business and product managers on one side and the development teams on the other side. 

Here is a rather acerbic post by David Gerard about software development and specifications that came across my Mastodon feed recently. The whole post is worth reading, but I'm just going to quote this bit, which is especially accurate and quite brilliant.

The purpose of a specification is to nail down the vague hopes and dreams of the business unit that’s just seen a fat, juicy market opportunity. In this case, they wanted a magical flying unicorn pony that ejaculated rainbows. The spec went into quite some detail about the desired properties of the wing feathers.

What they ended up with, of course, was a retired seaside donkey that had been tarred and feathered, a cornetto stuck on its head and fed food colouring and laxatives.

Needless to say, I am now following his Mastodon account.

No comments: