According to US defence secretary Donald Rumsfeld, “There are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know. But there are also unknown unknowns — the ones we don't know we don't know…”
This worryingly classic example of oratorical obfuscation from Mr Rumsfeld was sufficiently tortuous to win this year’s “Foot in mouth” award from the Plain English Campaign, on the occasion of the campaign’s 24th Annual Plain English Day.
It set me thinking. Why don’t we recognise and reward software developers and architects for practising plain and simple software?
Sounds like a damned good idea to me. I even have a ready-made name for the trophies – the Kiss (Keep it simple, stupid) awards.
We could have a gala dinner with celebrity guests presenting tasteful totems to the winners of all sorts of Kiss categories; such as “best contribution to reducing user frustration", or “best supporting documentation for third-party maintainers".
To be honest, this really isn’t quite so far fetched as you might think. I, for one, would sign up to any initiative that would seriously help us to cut the ever-increasing cost of complexity.
Almost every day of my working life I encounter further examples of convoluted infrastructures and software systems that are unwieldy, overly complex and unrelentingly expensive to maintain.
But why are there so many widespread instances of costly complexity? Well, there are three fairly fundamental reasons. First, the basic desire of systems people to extend our knowledge boundaries leads us inexorably towards an inherent love of complexity and an eagerness to explore esoteric functions whenever possible.
The second big driver of complexity is budget pressure – far too often the lack of investment funding forces us to seek work-rounds that don’t involve spending real money. As a result we usually put far more time and cost into finding a complicated work-round, when sometimes it would often be far cheaper, and simpler overall, to spend a relatively small amount of money to solve a problem. Talk about false economy.
And then, finally, we must consider the most prevalent cause of complexity – the legacy of previous effort and investment.
Quite simply, most systems, programs and architectures become increasingly complex over time, as new features and extensions to the original design are implemented.
Before you know it, even the most simple, most straightforward technology solution can become hopelessly compromised and complicated by having new bells and whistles bolted on.
Sadly, though, I very rarely find companies that truly understand the problems of complexity and willing to re-engineer working systems As a profession, we seem to revel in the status quo, doing far too little to make life easier and cheaper for ourselves. So I don’t suppose that there will be too many IT people getting a Kiss from me in the near future.
What do you think?
Are the workings of IT becoming too complex? Tell us in an e-mail >> ComputerWeekly.com reserves the right to edit and publish answers on the website. Please state if your answer is not for publication.
Colin Beveridge is an independent consultant and leading commentator on technology management issues. He can be contacted at firstname.lastname@example.org
This was first published in December 2003