Simpler architectural modelsvhanniet - 2022/01/28
Let’s say it’s time to build some views on the Information System architecture, or some part of it. The question is: how to keep these views simple to produce and simple to use?
The detail level trap
People often think that the more details you put in the more accurate views you get. They spend a lot for time on it and get much details on applications, data, technologies, infrastructure. And spend even more time on how these items all connect with each other. It takes time. The more details they want the more time they spend. And while time passes details change, so it’s a never ending run.
To get an accurate model you need to find a balance between details level, time to get them and the accuracy level you want to get.
What detail levels can I get on an Information System architecture? I like to use the C4 model approach. It describes four detail levels: Context, Containers, Components, and Code.
Among these four description levels I consider that two are useful to support architectural discussions on how the system is built:
- Context level is great to describe the whole system and its sub-systems or domains. This “big picture” description is a good start for any discussion about the system or some of its sub-system. It’s even a must as the Context level illustrates the enterprise strategy though big architectural choices and, hopefully, an organization that fits with them.
- Containers level is intended to describe applications or products, and the main business objects they handle. My opinion is that Architecture is not about implementation details but mainly about business logic organization. The system foundational tenants may often, not to say always, be shown with big potatoes. And if in some situation you hope for more details it’s a clear sign: there is probably some architectural rework to handle! Architectural main line forces should be clear enough at Container level.
Component and Code C4 levels are, for my opinion, useful for developers. These description levels focus on low level conception matters. And generally the way the code is organized should show these level details by itself. If it doesn’t, there is probably some rework here too.
Something useful too for high level design and system architecture modeling is to map business processes with the system organization. I love the Architectural Thinking way simplicity to achieve this goal:
This simple meta-model is a good base to draw powerful schemas. Even, some parts only of the meta-model are sufficient to express strong ideas.
For example, we can show a value stream architectural implementation using a C4 Container schema. Simply put Business Objects inside the products or applications which hold them and you will provide very useful information for any kind of reader interested by insights on the value stream.
Keep information system architectural models simple
With C4 model and Architecture Thinking we can produce models. These models are simple to produce and simple to read. As they are simple, they provide first choice material to discuss about Information System matters.
So, keep information system architectural models simple!