Architects do typically three things: they own, they coordinate, and they mentor.
As an owner, the architect maintains the integrity of the system at a high level. He designs the foundations, identifies tradeoffs, decides on essential changes.
As a coordinator, the architect facilitates work and optimizes the exchange of information. He connects people, gather information, and plan activities.
As a mentor, the architect provides the intellectual background to understand the system, work autonomously, and improve. He explains concepts and rationale, teaches best practices, and suggests improvements.
It’s a people and technical job.
Which kind of architect you need depend on the project and the team. If the team has enough expertise, they don’t need a mentor. If the team goes well along, they don’t need a coordinator. If the team shares the same view of the system, they can own it collectively.
So maybe you don’t need an architect.
The distinction between architecture and engineering is anyway very blurry. An architect doesn’t do something fundamentally different than an engineer. The three traits exist in every team member. Architects are simply mentoring, coordinating and owning at a different level of scale and responsabilty. Some companies (like Google and Amazon) don’t have architects. They only have engineers with different levels of seniority.
And if you think that coding vs. not coding is a fundamental difference in the job, it’s not. Both architects and engineers are doing software design.
The more happens organically through self-organisation in the team, the better. But self-organisation is hard and it frequently fails. If mentoring, coordination or ownership do not happen as they should, you’re in trouble. Identifying clear responsabilities might help.
So maybe you will need an architect after all.
- You may not need a Tech Lead, but others do
- The Software Architect’s Role in the Digital Age
- What Architects Are Not