Being Slow To Criticise

Recent changes
Table of contents
Links to this page


My latest posts can be found here:
Previous blog posts:
Additionally, some earlier writings:
This page has been
Tagged As Software
and Tagged As Story.
Software that deliberately kills the servers it is monitoring is an interesting idea. A story I read recently told of a situation where the programmer and/or engineer involved wasn't able to fix the real, underlying problem, so an overlay solution was devised that (a) worked, and (b) was feasible.

This post is not about that story. This post is about a comment made by one of the readers in the forum where I saw it.

"You should just fix the real problem:
the software is garbage."

I've met this before, both the situation of having software we can see is not up to current standards, and the attitude of those who look at it with the benefit not only of hindsight, but of 20 years of advances in software, toolkits, libraries, and hardware.


Although it's also seen and quoted in other contexts, there's a saying in software circles. People often come across code that looks overly complicated for the task it's doing, or the effect it's trying to achieve. But sometimes there's a reason for it to be that complex. Sometimes there are unexpected edge-cases and the code needs to be able to deal with it.

So the saying is:

"Don't ever take a fence down until you know the reason why it was put up," -- John F Kennedy, paraphrasing G.K.Chesterton.

This isn't a reason to leave things alone, and it should never be a thought-terminating cliché. It's a call to put in the time to understand something properly.

Sometimes there genuinely is no longer a reason for something, and sometimes there never was. What's important is understanding.

But I try to be slow to jump to that conclusion, that the software is garbage. So often there are reasons for things to be the way they are. The software tools and the hardware capabilities were very, very different in the aughties, and many people currently writing software don't really seem to appreciate by just how much. Additionally, there might be time pressures, political pressures, engineering constraints, access problems, and more.

It may be the case that things could have been done differently, perhaps better, but then again, once you know the full story and the full context, maybe not.

Some time ago I wrote up a war story from the mid-nineties and had some current software people crap all over it. When I started to explain about the machine limitations of the time, the bluster increased, and among the replies I got was "The software was crap".

Ever since then I've been interested in the contexts for these stories. So often I hear "Well you shouldn't have done it like that!" rather than an enquiring:

"OK, let's assume some clever people wrote this. I wonder what the pressures were that made them come out with that solution."

I've learned a lot by approaching things that way, instead of assuming the people involved were ignorant, unskilled, idiots, or otherwise incompetent, and simply declaring:

The software was garbage.

You might be right, but equally, it may be that you haven't put in enough time to understand the realities.

<<<< Prev <<<<
State Machine In Real Life
>>>> Next >>>>
All The Letters ... You can follow me on Mathstodon.

Of course, you can also
follow me on twitter:


Send us a comment ...

You can send us a message here. It doesn't get published, it just sends us an email, and is an easy way to ask any questions, or make any comments, without having to send a separate email. So just fill in the boxes and then

Your name :
Email :
Message :



Links on this page

Site hosted by Colin and Rachel Wright:
  • Maths, Design, Juggling, Computing,
  • Embroidery, Proof-reading,
  • and other clever stuff.

Suggest a change ( <-- What does this mean?) / Send me email
Front Page / All pages by date / Site overview / Top of page

Universally Browser Friendly     Quotation from
Tim Berners-Lee
    Valid HTML 3.2!