Let me begin by giving a little disclaimer, I am not an architect, only a student of software architecture and sharing what I learn with you.
Learning about what is expected of an architect reminded me of a popular phrase at my previous workplace, “What does success look like?”. Asking the question brought immediate clarity to the most ambiguous of requirements. Knowing what is expected of you as an architect brings clarity to the role. In this article I talk about the core expectations, you can learn more from Neal and Mark’s book Fundamentals Of Software Architecture
An architect is expected to define the system’s architecture style, examples are microservices, micro-kernel, layered etc. Architects are also expected to define the design principles and make architecture decisions like views should not access the database directly. Architects are also depended upon to guide technical decisions, this means, instead of dictating whether the team should use ReactNative or Flutter, an architect provides guidance and the team picks what is the best fit for the problem.
An architect’s job does not end once they have defined the architecture and provided guidance. Architects must continually analyze the viability of the architecture. As business needs evolve so does the architecture. The architecture of a system is a living and breathing artifact. Let’s say we have a new business requirement that necessitates adding a messaging component, we’ll have to modify the architecture to support messaging, otherwise, the initial design becomes less viable.
Along with analyzing the architecture architects are also expected to analyze technology and industry trends. Knowing what is new and how it works helps make informed architecture decisions. Architecture decisions take time to implement and might be hard to undo, so you want to make sure you’re using the right tool for the job.
Because of the dynamic nature of the architecture of a system, architects must ensure compliance to architecture decisions. If they don’t, the architecture fails. If an architect made the architecture decision that only the persistent layer should access the database and views should not, then changes are added to the system that makes a view access the database, this breaks compliance to the architecture.
In conclusion, the core expectations of an architect are, defining the architecture and design principles, analyzing the architecture, analyzing technology and industry trends, and ensuring compliance to the architecture.
Think Like An Architect
Let me begin by giving a little disclaimer, I am not an architect, only a student of...