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?
How to distinguish architects?
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.
What can you ask the application architect?
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:
- non-functional requirements and their reflection in the architecture;
- stakeholders’ plans about application development and how they are implemented in the architecture;
- components of the system and their functional requirements;
- system interface and connections between its parts;
- technologies that are used for creating the application, as well as their functions and limitations.
What is the main responsibility of the application architect?
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.
What does the application architect do?
- The architect doesn’t create the architecture alone; instead, they motivate team members to discuss an optimal structure and make decisions about the architecture.
- The architect should have information about the latest standards, popular tools, and effective approaches to make thought-out decisions about the project strategy.
- He or she should take into account the requirements of all persons involved in this process, for example, the target customer, stakeholders, UX designers, developers, the QA team.
- He or she can predict the time when problem-solving is needed: a temporary solution can be more useful while the team is collecting the necessary information to make the right decision.
- The application architect should propose innovations, allocate tasks, and be a mentor for developers.
What about coding?
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.
Do companies need an architect in an Agile team?
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.