While reading the book 'Deep Survival' (most kindly given to me at the UKOUG conference in Birmingham by Sir Graham Wood of Oracle after the fire in my house) I happened on a description on page 107 of a book called 'Normal Accidents' by a fellow named Perrow (get it? per row - a perfect name for database nerds).
Perrow's theses is that in any tightly coupled system - in which unexpected interactions can happen - accidents WILL happen, and they're NORMAL.
Also, he states that technological steps taken to remedy this will just make matters worse.
Perrow and IT systems
I have freely translated Perrow's thoughts into the following:
IT systems are tightly coupled. A change - a patch, a new application, or an upgrade - to a layer in the stack can cause accidents to happen, because they generate unexpected interactions between the components of the system.
This is normal and expected behaviour, and any technological gear added to the technology stack in order to minimize this risk will make the system more complex and therefor more prone to new accidents.
For instance, I find that two of the most complexing things you can do to an IT system are clusters and SAN's.
These impressive technologies are always added in order to make systems more available and guard against unexpected accidents.
Hence, they will, in and by themselves, guarantee other normal accidents to happen to the system.
Complexing and de-complexing IT systems
So you could say that it's a question of complexing or de-complexing IT systems.
I have found four situations that can complex IT systems (I'm being a bit ironic here):
1. To cover yourself (politics).
3. SMS decisions.
1. Reason One: To cover yourself (politics)
You might want to complex systems in order to satisfy various parties that you depend on or who insist on buying certain things they've heard about at vendor gatherings:
"Yes, we've done everything humanely possible, including buying state-of-the-art technology from leading vendors and asking independant experts to verify our setup".
This is known as CYB (Cover Your Behind).
2. Reason Two: Exploration
Ah, the urge to explore unknown territories and boldly go where no man has ever gone before...
Because you can.
The hightened awareness thus enabled might be A Good Thing for your system and your customers.
It could also create situations that you and others find way too interesting.
Reason Two is often done by men, because we love to do stupid or dangerous things.
3. Reason Three: SMS decisions
A third reason for complexing IT systems could be pure ignorance in what is commonly referred to as Suit Meets Suit (SMS) decisions - where a person of power from the vendor side with no technical insight talks to a person of power from the customer side with no technical insight.
These SMS situations tend to cause considerable increases in the GNP (just like road accidents and fires) of any country involved because of all the - mostly unneccessary - work following.
The costs to humans, systems and users can be enormous. Economists tend to love it.
4. Reason Four: Architects
A fourth reason for complexing IT systems can be architects. Don't get me wrong: There are many good IT architects. The very best ones, though, tend not to call themselves architects.
One of my dear friends once stated that an architect is often a developer that can't be used as a developer any more. Very funny.
However, what I have witnessed myself is that the combination of getting further away from the technical reality and getting closer to the management levels (the C class, as it were) tend to make some architects less good at making architectural decisions after a while.
That's where the vendors get their chance of selling the latest and greatest and thus complexing new and upcoming systems.
Summary: The end of reasoning
Four reasons must be enough. There are probably more, but I cannot think of them right now.
Anyway, imagine what savings in costs and worries you can obtain by moving just a notch down that steep slope of complexity in your system.
You might be able to de-complex your system to a degree where it becomes
absolutely rock solid and enormously available.
That should be our goal in the years to come: To help our customers de-complex their systems, while of course trying everything we can to support those who chose to complex theirs.