Today the word architect is widely used to name several kinds of positions in software development teams. Even the same position can imply different responsibilities in different companies depending on the company size, industry, and working processes, which also contributes to confusion.
So, let’s clarify who an application architect is, and what does this person do?
The position of an Enterprise Architect we can find in large enterprises. Such a person has special technical skills and chooses the most suitable software for the company’s business processes.
The Systems Architect sets systems standards and limitations that ensure a coordinated performance of all integrated systems, software, tools, and platforms.
The Application Architect or the Software Architect is the person who works in the frames of one of the systems. He or she monitors the system and the interactions between its components and determines code requirements and limitations.
If we consider the relationship between a company and software developers, the enterprise architect and the solution architect represent the company, and the application architect embodies the developers’ side.
The application architect sees the whole system and understands the work of its integrated parts. You can ask the architect what components have connections with the database or what code fragment provides a certain function. He or she has relevant information about:
The main goal of the work of the application architect is the creation of useful and technical software. He or she understands the system’s construction and provides this information to the team.
Developers deal with certain parts of the system and don’t see the whole picture. Guided by the application architect, they know how their work affects the results, what changes are required, and what the future plans are.
The application architect uses charts to demonstrate all system levels and their connections, or put simply the software architecture.
Should the application architect write code or no? This is a tricky question. If the application architect doesn’t’ participate in the development, it will lead to some isolation and abstract thinking. But if he or she writes a lot of code just like a developer, there will be no time left for the global vision of the processes. The architect should strike a balance between these two roles according to the project and the company and take up the activity that is more useful at that moment.
An ideal Agile team is a team with well-developed communication and common code writing; all members of such a team are used to multitasking and have similar experience and competencies. They have an understanding of the tasks of each other and it is quite enough. In that ideal situation, the application architect is not needed, because all requirements are shared with all members. They can make competent decisions themselves.
But as practice shows, the more different competencies the team members have, the more various problems with communication appear. The application architect is needed to manage the creation of the architecture, and orchestrate the efforts of the team, especially if the project is large and complex.
An application architect is a “universal soldier” of the development team. This position requires different development and managerial competencies, including strong communication skills, strategiс thinking, and the understanding of effective development approaches.