The KISS rule (Keep It Simple, Stupid) is universal to all architectures. Simple things are easy to understand, and straightforward to implement. Simple things do not cost a lot of time (or money) to implement and are therefore also easy (painless) to revert (important key characteristic of software). A good architecture of software is a minimal behavioral specification, with widest possible range of implementations. The idea of simplicity and sophistication applies here. The main advantages of simplification are speed and reduced complexity. Every line of code being written has a potential for a hidden bug. Producing less code will create less possibility for errors. Simplicity means less complex testing, lesser maintenance and easier scalability. However, “keeping it simple” itself is easier said than done, as said by world famous computer theorists.
"There are two ways of constructing a software design; one way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." - C. A. R. Hoare
Traditional software architects tend to over-specify the requirements, and developers are used to over-develop their code and application. The result is a complex architecture and an end product that is hard to implement, scale, operate and maintain. It’s usual for the stakeholders to stick to their standards and requirements and make it difficult to simplify things. However, it’s the role of a good architect to see holistically and negotiate essential features amongst different stakeholder to arrive at the minimum essential complexity for the primary value delivery.
As discussed in the previous paragraph, certain level of Complexity is essential for satisfying necessary functional requirements with a vision of future scalability. Again, it’s the role of a good architect to disguise the complexity....