technical,

Architecture vs Design

Chris Chris Follow Jan 13, 2025 · 4 mins read
Architecture vs Design
Share this

Is “design” the same thing as “architecture”? Is system design the main preoccupation of an architect?

Sometimes these terms are used interchangeably in conversation. However, there are important differences. In this post we will distinguish between the two and get a better understanding of their interaction when successfully building a system.


The Essence of Architecture

Software architecture represents the structural foundation of a system. It involves defining:

  • The overall structure of the system.
  • The architectural patterns and styles (Ex: microservices, layered architecture, etc.).
  • Architectural characteristics (Ex: scalability, performance, security, etc.).
  • High-level components that will make up the system and their interactions.

Architecture focuses on the “big picture”, ensuring that the software meets its technical and business requirements while aligning with its chosen Architectural characteristics.

The Role of Design

Design deals with the finer details of how the components interact and function internally. The architecture is further refined to:

  • Specify the internal operation of individual components.
  • Build user interfaces and define data flows.
  • Write and test the source code to implement the components.

Design is the process of actualizing the system within the parameters set forth by the higher-level architecture.

Where Architecture Ends and Design Begins

Traditionally, the above could be considered as completely distinct roles, producing their own artifacts, with architecture delivering high-level structure, and design delivering implementation details. However, this rigid separation can lead to communication gaps and inefficiencies.

Today, the boundary between architecture and design frequently is not so clear-cut. Modern approaches emphasize an iterative and collaborative process, with constant feedback, ensuring that design decisions align with the architectural vision.

Why the Relationship Matters

Without a strong relationship between architecture and design:

  1. Decisions don’t flow effectively: Architects might define rules, such as restricting direct database access to specific layers, but developers may unintentionally violate these rules.
  2. Architectural principles lose their relevance: If developers don’t understand the rationale behind architectural decisions, they might make changes that conflict with the system’s goals.
  3. Slow feedback loops: Ineffective communication will hinder rapid feedback and result in inefficiency, or worst case, a failure to deliver a system with the prescribed characteristics.

To bridge this gap, architects and developers need to work as part of the same team, breaking down both physical and virtual barriers. This bidirectional communication ensures that design choices reinforce architectural goals and vice versa.

A Personal Anecdote

The above may be very obvious to Senior members of the industry. However, the distinction is often more obscure for more Junior members or people just starting to pursue a career in the industry.

In my role, I interview people wishing to join the company in an architecture position. As I have previously described in my ‘What is Architecture?’ and ‘What is the Role of an Architect?’ posts, my very first question tends to be exactly that: ‘What is your understanding of the Architecture Role’? Interviewees, who are often looking for their first role as architect, will often conflate ‘Design’ with ‘Architecture’ and provide a description which is more aligned with the former rather than the latter. This is not overly surprising as people will often rely on their first-hand experience to provide an answer, that is, what their own interaction with an architect looked like to them. I emphasize the distinction in order to make sure people understand what they are getting into as an architecture job might not really be what they thought it was and what they want out of their career.

It is also the case that the blurring of this distinction can be common even among Junior Architects. One has to grow and mature into the role, and it only makes sense for that to happen layer by layer from the bottom-up.

Finally, having a better understanding of different roles and their related domains is always a plus. It fosters better teamwork, communication and collaboration through a greater shared context and understanding.

Thus the reason for my writing this blog post today. We are discussing foundational concepts which are obvious to many, but can still be a stumbling block for some, and I personally see the value in highlighting it further for their benefit. Clearly what I covered today is just the tip of the iceberg, but I hope it can ignite interest and be a stepping stone to further discovery.

Key Takeaways

  • Architecture focuses on the “what”: the structural foundation, patterns, and high-level rules of a system.
  • Design focuses on the “how”: the implementation details and internal workings of components.
  • Collaboration is critical. Architecture and design should work together to create systems that are both functional and resilient.

Understanding the distinction and relationship between architecture and design is vital for anyone involved in software development. Fostering communication and collaboration between these domains is critical for teams to deliver effectively and efficiently.


Stay Connected for More Insights!

I appreciate you taking the time to read about architecture and design. If you enjoyed this post, please check out my other posts on the topic of architecture.

If you found this content valuable, consider following me on socials for more insights and updates. Let’s continue exploring the fascinating field of architecture together!


Chris
Written by Chris
I consider myself a life-long student. Gaining knowledge, having my opinions challenged, learning new skills, refining existing ones and problem solving are extremely motivating to me. I enjoy having a target to aim for. My interests are varied and I appreciate opportunities to share what I know and discuss with my peers.