We start discussing the expert roles that are directly related to development.
An IT Architect is a role that decides what an information system will ultimately look like.
At the initial stage, it takes the formalization of processes from the Business Analyst (software requirements), forms the solution architecture and defines its components:
- Functional blocks
- Data formats and ways to exchange data between components
- Technology stack
- Infrastructure (load and system availability)
Describes all the above processes in a specific document format, which becomes a component of the terms of reference for developers.
Further, in the development process, this role is responsible for architectural supervision.
The cost of an Architect’s mistake.
To illustrate the importance of the role of an Architect, we will use the example of one of our projects to show the cost of his mistake.
We were contacted by a client based on a recommendation.
Our client faced a classic situation:
The client launched MVP, the business started to gain momentum, and after a while the system got hung (or went down, whichever you like).
The request to us was not only to develop the system, but first of all, to analyze what happened.
When we investigated the system, it became obvious that it was designed by a novice architect.
It’s like in construction: the task was to build a skyscraper, and the foundation was laid for the barn.
How does an Architect influence the success of a project? How do I know that the Architect is fulfilling his role efficiently?
High-quality design of the solution architecture is very important for the overall success of the project. This allows you to avoid a number of problems, for example:
- Incompatibility of the technologies used.
- The solution cannot be scaled.
- The lack of flexibility in the further use and modification of the solution.
There are many examples when companies have to redo / start large-scale changes just because they were too hasty at the stage of architectural development.
Here it is worth noting that no two architects are alike, and just the presence of such a function in the process does not guarantee the quality of development.
There is a stereotype that architecture is a constant creative process. However, this is not the case.
It requires a detailed understanding of the technological side, immersion in the business task, and so on. Moreover, there is a whole layer of routine that should not be forgotten. Which includes:
- Project documentation
- Continuous work with the team
Control not only over the «beauty» of solutions, but also over the economic feasibility.
There is a whole range of different tasks and priorities between MVP projects and enterprise architecture.
The focus in startup MVP projects is to effectively launch the first version.
The main thing:
- Functional architecture of modules
- Business logic
- Data model
- Technology stack
Here we usually work based on the concepts of micro-service architecture.
Infrastructure components at this stage are commodities, where DevOps already works with standard cloud service solutions.
What should an Architect know and be able to do? What skills do you need to develop in order to become a good Architect? And does an Architect need to be able to write CODE, for example?
- All the companies we worked with understood the importance of this function and architects were always available, however, there were completely different examples, both in terms of personal qualities and technological skills.
- A quality architect should have a detailed understanding of IT on the level of concepts, possible data exchange protocols and integration methods, etc. However, the main focus and criterion for success is the availability of high-quality soft skills that are necessary for working with the team and business customers, as well as experts and contractors from the market.
- Is it necessary to be able to code? Absolutely not necessary. There is a large number of examples of good architects who came out of system engineers, hardware professionals, or product manufacturers.
- The main thing is to have a keen interest in IT trends, a desire to constantly expand your knowledge and understanding of different concepts, and, as mentioned above, the ability to maintain a high-quality communication with all participants in the process.
Is it possible to organize the work so that the role of the Architect is combined with some other role in the project?
In principle, this role is necessary. The Architect is combined with the Tech Lead, the Team Lead and the Senior developer of certain area. In other words, in micro-projects, it can be a on-the-field coach.
Obviously, mistakes made by an Architect can cost the entire project dearly.
- Ability to anticipate all the needs of the developing system and at the same time remember about the economic feasibility.
- Ability to make a choice between ready-made standard and unique creative solutions.
The desire to follow not only your own vision, but also the needs of different groups of stakeholders. This is a set of qualities of a professional architect.