Would you prefer simplicity or democracy?

I was inspired by a couple of tweets I saw recently from @CompSciFact to write this.

Computer scientists for many years have made a plea for simplicity.

Edsger Dijkstra, one of the most eminent, said “we have to keep it crisp, disentangled, and simple if we refuse to be crushed by the complexities of our own making” and Fernando Corbato, one of the developers of Multics (a 60s operating system which inspired Unix) said ““The general problem with ambitious systems is complexity. … it is important to emphasize the value of simplicity and elegance, for complexity has a way of compounding difficulties.”.

Throughout the years, there have been similar statements, with computer scientists telling the world that the answer was to simplify.

And, do you know what? The world paid them no attention at all. Systems have got (much) more complex not less. Why – it’s the price we pay for democracy? Our societies and our businesses and our governments and inherently complex because people make them that way. Every time you try to simplify something be it a tax system or a chemical plant, there will be losers. Some people have to pay more tax or have a chemical plant belching fumes in their backyard. And they vote against the people who caused these problems for them.

So, we invent complex systems so that we minimise the number of losers (or at least make sure the losers have as little political influence as possible). If you want simplicity, the price you will have to pay is dictatorship.

Personally, I’ll stick with complexity.


Filed under complexity

3 responses to “Would you prefer simplicity or democracy?

  1. Bogdan Golab

    Many of us who are involved in the in system development appreciate complexity. Regulatory changes, legacy support (backward compatibility), new features make us busy in the engineering departments.

    Regardless of the democracy impact on the system complexity the system are complex anyway. Mostly because the way we develop system: incremental development and the corporate strategy how to add new feature with short term minimal cost. Many times this leads to non optimal design, which in long term perspective creates extra costs because of introduced complexity. The well know KISS rule is almost never obeyed.

    Another big source of complexity is “legacy support”. Where millions dollars are invested we need to protect the money sunk into the legacy systems.
    Developing system compatible with pretty old systems (10+ years) might be cumbersome as well. You are never sure if you missed any requirements to ensure backward compatibility and interoperability.

    I have 20+ years of experience in system development, mostly in Tetra business.

    Anyway, complexity is our friend. Thanks to it we can earn money every month;)

  2. John Hutchinson

    I really like this post Ian. I might argue that the comment “we invent complex systems…” could be re-written as “we recognise complex systems…” – even if it makes less sense! One of the defining lessons of my undergraduate linguistics classes was that in human systems, there is a complexity below which what you are saying isn’t really truthful or accurate. You have to recognise the complexity before you can consider even a description. Of course, the problem we always face is that there are few people who readily adapt to the “complexity” of competing disciplines. Many people who see social science “truths” find maths and tech hard. Similarly, some people who appear to “talk computer” are overly simplistic in their view of social realities.

  3. Pingback: Requirements conflicts, governance and complexity | Thoughts on software and systems engineering

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s