technical,

What is the Role of an Architect?

Chris Chris Follow Aug 08, 2024 · 4 mins read
What is the Role of an Architect?
Share this

In our previous discussion, we delved into the elusive question of “What is Architecture?”. We explored various definitions, from Martin Fowler’s reliance on Ralph Johnson’s concise summary to Edwin Marrima’s notion that architecture deals with the stuff you can’t Google. We concluded that architecture is dynamic, highly contextual, and continuously evolving.

With this foundational understanding, we now turn our attention to another crucial question: “What is the Role of an Architect?”. While the concept of architecture itself is vast and multifaceted, the role of an architect is equally complex and varied. In this post, we’ll explore the expectations, responsibilities, and skills that define the architect’s role in today’s fast-paced and ever-changing technological landscape.


What is the Role of an Architect?

When discussing the architecture role, responses vary as much as definitions of architecture itself. The role ranges from a highly senior programmer to someone who designs applications or systems, translates business requirements into technical specifications, champions communication between the technical and non-technical, or defines high-level technical direction for the company. This is further compounded by whether the company has adopted agile or not, and how the architect fits into the development lifecycle.

Of course, there is nuance depending on what type of architect we are discussing: technical architect, solutions architect, or enterprise architect?

Nevertheless, there are expectations true for all types of architects. This is something I have learned through education and first-hand experience. I recently encountered an excellent concise definition of these expectations in Fundamentals of Software Architecture: An Engineering Approach by Mark Richards and Neil Ford, a book I wholeheartedly recommend.

In Chapter 1, they propose the following expectations for an architect, irrespective of role, title, or job description:

  • Make architecture decisions
  • Continually analyze the architecture
  • Keep current with the latest trends
  • Ensure compliance with decisions
  • Diverse exposure and experience
  • Have business domain knowledge
  • Possess interpersonal skills
  • Understand and navigate politics

This aligns neatly with my belief of what an effective architect should do. Let’s elaborate on the above…

  • An architect is expected to define the architecture decisions and design principles used to guide technology decisions within the team, department, or company.
  • An architect is expected to continually analyze the architecture and current technology environment and then recommend solutions for improvement.
    • We are dealing with a dynamic ecosystem, which the architect needs to holistically analyze to determine architecture vitality and protect against architectural decay.
  • An architect is expected to keep current with the latest technology and industry trends.
    • A developer needs to keep current with the latest technology. An architect even more so, as their decisions are longer-lasting and more impactful.
  • An architect is expected to ensure compliance with architecture decisions and design principles.
    • Lack of compliance is another source of architecture decay, which can result in the system not meeting its intended architecture characteristics.
  • An architect is expected to have exposure to multiple and diverse technologies, frameworks, platforms, and environments.
    • For an architect, technical breadth is more critical than technical depth, although both are necessary. It is more valuable for an architect to be aware of multiple technologies/frameworks/platforms, thus providing multiple options to be analyzed and increasing our chances of success. Of course, being an expert in a particular technology/framework/platform is also beneficial, especially if it is valuable to the company.
  • An architect is expected to have a certain level of business domain expertise.
    • Without domain knowledge, it is difficult to understand the business problem, goals, and requirements, making it difficult to design an effective architecture to meet the business’s needs.
    • Domain knowledge supports effective communication, which increases confidence.
    • Domain knowledge is required to identify implicit requirements.
  • An architect is expected to possess interpersonal skills, including teamwork, facilitation, and leadership.
    • As technologists, this can be challenging, as we are more inclined to dealing with technical problems than people problems.
    • As Gerald Weinberg, computer scientist, author, and teacher of the psychology and anthropology of computer software development, said:

      “No matter what they tell you, it is always a people problem.”

  • An architect is expected to understand the political climate of the enterprise and navigate the politics.
    • This can be very frustrating to junior and established architects alike. The reality is that as the impact of our decisions grows in scale, the group of impacted people grows, and with that, so does the number of challenges.

In my opinion, being cognizant of, practicing, and improving on these disciplines is critical to success in architecture.


Stay Connected for More Insights!

I appreciate you taking the time to read about the role of an architect. If you enjoyed this post, be sure to check out my previous discussion on “What is Architecture?” for a broader context.

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!


Acknowledgments

This post draws heavily on concepts from Fundamentals of Software Architecture: An Engineering Approach by Mark Richards and Neil Ford. Their insightful book provides a comprehensive guide to understanding the role of an architect, and how do approach the job in a structured and repeatable way. I encourage anyone interested in the topic to read it for deeper insights.

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.