In an enterprise IT setting you will always hear from all these aged and "wise" technical managers that it is important to "keep things simple". Mostly they then cite this well-known "KISS principle" as the reason for not using a new technology, or for sticking to mainframes instead of diversifying to more modern infrastructure, or even for not changing even malformed organisational processes.
I have to admit that in the beginning of my career I was some kind of intimidated by these guys with their obvious wisdom (they knew KISS!).
In the meantime I judge these empty sayings as unnecessary and even dangerous.
Take the example when managers keep saying that a central mainframe infrastructure is simple and the only means to provide highly available applications. I guess they somehow resemble the marketing phrases of the mainframe companies (are there others than IBM nowadays?).
Of course, a mainframe is designed for maximum availability and reliability. Now I suggest that a mainframe being reliable is not the cause but the effect of the whole story!
It is easy to argue that a central platform hosting all the important and mission-critical applications has to be reliable and available to the highest degree (depending on the business, of course). And the cool thing here is that the yard stick for HA is the most critical of applications. Hm, what else could IBM do but to make a mainframe the most well-engineered of platforms? Therefore, there is no choice for a mainframe but to live up to the highest standards... And the result is also the highest cost.
Given my statement from above it is a no-brainer to push it a step further and state that if we have the choice not to use a mainframe the whole story can get written differently.
This is to say that then we are free to choose the hardware platform with regard to the HA requirements of the given application (and for each separately, if we want to!). Furthermore, there are well-researched architectures in distributed computing that provide very high availability, too. Mostly, these distributed platforms are also orders of magnitude cheaper than mainframe platforms.
And how is this all connected to KISS now? I admit that one hardware machine appears in the first place simpler than many of machines. But not necessarily in a way that is significant to the problem at hand: availability, reliability, security (maybe I should just say dependability...)---most notably in the view of cost.
In a distributed setting it is easier to isolate failure domains with moderately priced infrastructure elements.
With clusters of distributed machines one can quite cheaply build highly available systems that are also efficient and easily managed. This was not the case in the past but now we have the tools an knowledge at hand. HA and the other quality attributes are always judged from the user perspective. So I think it is best to consider every application for itself. Make critical applications highly available and be more easy on less critical applications. The overall result may be better just because one application is not interfering with another application when they are separated. Of course this is a rather simplified presentation most notably when taking into account virtualisation on the different technology layers. Nevertheless I claim that a thinking based on a case-per-case judgement results in simpler architectures in the long run.
The nice beneficial side-effect is that without the necessity to isolate applications with different quality requirements on the same platform the system (hardware, operating system, middleware) can be of a less expensive design.
It would be nice and necessary that all this old rhetoric is wiped from IT manager's vocabulary. Just let the fresh ideas prosper and you will get the better results... proper management assumed ;-)
[this post is somehow related to my ideas on the misguided use of the system engineering principle of requirements partitioning]