In seeking the unattainable, simplicity only gets in the way.
In the previous chapter, we categorized the various sources of uncontrolled increase of complexity for information systems and also discussed how general simplicity principles could favor creation of value. Now, to turn these principles into a more practical framework, we first describe a generic information system in terms of architecture layers, applications, and physical and logical dependencies. For each of the architecture layer, we then suggest concrete simplicity measures to mitigate the three main sources of unwanted complexity, namely growing technical heterogeneity, changing requirements, and the selection of human factors we decided to consider.
The diversity of ISs is obviously huge and this makes it rather hard to define a sensible generic architecture. We thus prefer to take the point of view of IS architects here and define three standard architecture levels:
The physical architecture: This includes infrastructure components such as hardware, network, security tools, archiving tools, and administration and monitoring tools that underlie an IS.
The software architecture: This includes, broadly speaking, any piece of code, modules, libraries, and frameworks that are used in the applications that are part of the IS. We further distinguish three sub-layers ...