From Abstraction to Simplicity

Abstraction and simplification are two fundamental principles that often work together in the design of systems.

With abstraction, we reduce system complexity by focusing on the essential aspects in the area of structure (boundaries), elements (concepts), and behavior (dynamics). Simplification, conversely, looks to ease the understanding and management of the system by streamlining the doing, whereas abstraction is thinking.

Without abstracting, as in thinking deeply about the situation and noticing repeating patterns, simplification delivers simplistic solutions, where the problem and solution are stripped of many aspects and the result fails to simplify the system, leading to expensive workarounds. Simplicity and abstraction are, in effect, mutually reinforcing.

Abstraction

Abstraction brings relevant concepts to the design process. From there, it is easier to imagine opportunities for simplification, where complexity is reduced in how a system is efficiently and effectively managed.

In software engineering, abstraction is achieved through APIs that present a simplified outward interface to the caller while encapsulating more complex inner workings. In architecture, abstraction can take the form of high-level models, modular architectures, or structural hierarchies that allow each layer to largely ignore the internal complexities of the layers below.

Architecture is a process of designing and evolving levels of abstraction.

Conceptualization

Between abstraction and simplification, there is conceptualization framed by context.

Conceptualization is synthesizing and categorizing information extracted through abstraction and making it increasingly accessible via a feedback loop with simplification. It is the bridge between abstraction and simplification.

Without good conceptualization skills, it is unlikely there will be significant simplification. When people talk about how difficult simplification is in practice it is with the effort that is required when conceptualizing.

Conceptualization creates a mental model of the system, which can then be refined and made user-friendly.

Design (synthesis) is the overarching process encompassing conceptualizing, abstracting, and simplifying.

Conceptualization involves the formation of conceptual models that organize, categorize, and structure abstract ideas and simplify their representation. It helps us make sense of the world and its systems of systems.

More importantly, conceptualization helps to improve effective communication and increase the sharing of knowledge.

Conceptualization is a precursor to standardization. Standardization formalizes effective concepts.

Contextualization

Contextualization is how a design can be best judged, in terms of fit for purpose. Contextualization is the big picture that frames the design and the processes of abstraction, conceptualization, and simplification.

Contextualization grounds our concepts. It ensures our abstractions are relevant and applicable to the problem space. The usability of our simplifications is always weighed within a context—situation, setting, scene, etc.

It is about understanding and responding to the where and when, ensuring the design fits seamlessly into the big picture, and meeting an intended purpose most effectively – when the context changes so must designs.