“Architecture” and “Design” are two terms frequently used in IT. From my experience, these terms are understood differently by everyone and are used situationally in various ways.
According to Wikipedia, architecture primarily refers to the deliberate planning, designing, and constructing of buildings. Wikipedia defines design more broadly as the process of building within a specific context. After spending some time with the Wikipedia articles, it becomes clear that a strict separation of these two terms is not straightforward.
So how do I handle these terms in everyday work? After all, they often come up during my work as a software developer. I have established the following simple definitions for myself:
- By architecture, I mean, for example, the context, containers, and components in the C4 model, entire IT systems and individual applications within IT systems, as well as their relationships.
- Design, for me, takes place within the detailing of individual components such as classes and their methods. This corresponds to the code level in the C4 model.
According to my definition, it is important that the overall architecture is properly set up and communicated first (collaborative work).
Subsequently, each developer can work independently in the area of design on their tasks (independent work). However, a developer is not completely free in their decisions but must adhere to guidelines and recommendations like CleanABAP.
This understanding and approach require a lot of trust and, in my experience, only works well with experienced colleagues who can work both independently and in teams.
When the prerequisites are met, the 10-80-10 rule works well: 10% initial alignment (together), 80% operational implementation (independent work), and 10% review (together). The percentages illustrate the proportions and are not to be understood as fixed values.
All of this presupposes that a common understanding of architecture and design is established at the beginning. Therefore, in conversations, I always explain how I understand these two terms and listen to how others define them for themselves. Communication with clear terminology is essential here.
