BufferedDev

Have you heard about mental models? They are  like  glasses for the mind, putting one on, will change how you see the world and add a new dimension to your thought process. The first step in growing from a developer to an architect is learning to see and think like an architect. In this article I take you through an architect’s mental model.

As developers we worry about how clean our code is and whether we are adhering to the SOLID principles. Our artifacts are mostly code. Architects are concerned about the architecture style and patterns that fit the problem domain and components, the system’s building blocks.

To become an architect we must sacrifice technical depth at the altar of technical breadth. Unlike developers who must have technical depth to perform their jobs, architects need technical breadth. It is better for an architect to know five solutions to a problem than knowing one really well. Technical  breadth allows architects to compare solution tradeoffs and pick the one that fits the problem domain best.

If you’ve been writing code for long enough then you know the satisfaction of merging a pull request. Merging in changes is pure bliss, we don’t want to worry about the business, just our little changes. Well, to be architects we need to grow and develop curiosity about business drivers. A big part of being an architect is converting business drivers to architecture characteristics, so start asking program managers for more context when necessary.

The industry reached a consensus that architects should write code and  indeed they should. When architects don’t write code, the design — by developers — and architecture get out of sync leading to the failure of the architecture. However, architects must balance between writing code and architecture.

To think like an architect, know the difference between architecture and design, aim for technical breadth, understand business drivers and balance between architecture and hands on coding.

View Comments

There are currently no comments.

Next Post