In this article, Oleg Sapishchuk, Senior Solution Architect at OSF Digital, shares his vision of the role of a Solution Architect and what the key responsibilities are for such an expert.
For almost a year, one of my job responsibilities was mentoring and growing the Solution Architect team at OSF Digital. The main business goal of a Solution Architect in our eCommerce division is to be able to solve any architecture tasks and to self-independently find innovative solutions for our customers and partners.
The Role of Architect
What if we start with the opposite question: Who is not a Solution Architect? People often think that it’s the most skilled, experienced, and knowledgeable developer or expert who knows the best technical aspects of the project. That’s not exactly the truth. Of course, an architect should understand the technical aspects of the project and be able to identify good code and code that smells bad. At the same time, he has exclusive responsibility which developers and experts are not capable of handling. He is responsible for forming, documenting, and communicating the overall technical solutions for the full system. He is like a composer or orchestrator of the music which he or she creates and prepares for an orchestra to perform.
Another analogy we could look at is the construction industry, which is a very good example. What is the role of an architect, let’s say comparing to a foreman, bricklayer, or plasterer? The gentlest way to understand this is to look at it from a customer’s perspective. As a customer, I would want the expert opinion of an architect when I need to build something. At the same time, I’m not a specialist in construction and understand that I cannot formalize all details on the professional level. I will get in contact with the architect at the early phase of my journey when I have not begun to build anything or even buy materials. I have an idea to create, let’s say the stadium. I wonder, is it at all possible to make my idea come true in the way I imagine it? And if yes, then how can it be done? Coming to such a professional, I do have some expectations. I’ll expect him/her to ask me the right questions such as:
- What exactly are you building?
- And, for what purpose?
For example, a stadium for soccer and arena for athletics will have a different shape and different functional areas. If it is a soccer stadium, who exactly will play there? Is it a national team or school squad? Based on the answer, we can define the size and number of seats for the fans.
When the architect identifies vital functional and non-functional requirements for the project, he brainstorms a concept for the solution and creates a sketch for future construction. When it is done, the next step is to communicate and present a solution for the customer. The goal is to confirm and align with the customer that the high-level design of the solution is precisely what the customer wants. This is really a high-level design of the project, aka non-detailed design. In this phase, we would also make an estimate and budget for that project.
After alignment on the concept, the architect starts to make more detailed visualizations and planning. He draws a ventilation or wiring diagram. While he is doing this, he is not able to know every domain standard or technology element, so he involves subject matter experts in this phase. They together create the low-level design of the future building.
In IT, the split of the roles and responsibilities are the same, except that IT has its specifics. A Solution Architect clarifies customer needs, make the design of the solution, and afterward give the project to the team leads for technical implementation.
The key difference in what is described above is the process of using the waterfall model. With the construction domain, first, you need to create full project documentation with high-level and low-level details. Only after the above steps, we can start building.
In IT, we can run projects using the agile methodology. Too often, it becomes very complicated to create the final architecture. Moreover, if we take into consideration how technology changes, evolutionary architectures within agile principles are a more preferred approach. Architects with a team can move by iterations, support the team on each phase of the project, continuously clarify requirements, and make required updates to the architecture. The architect also helps the team solve technical constraints that appear along the way.
Key Solution Architect tasks
Explaining requirements for the project and communication with the customer. Very often, this happens on the presale or discovery & design phases. Architects help to prepare a commercial proposal. For this, they communicate directly and profusely with a customer, often going on business trips to investigate the business directly. Sometimes, if required, we can add to the scope, consultancy activity for technical advice or technical audit of the existing solutions.
The technical investigation, innovation, and prototyping. Generally, at the beginning of the project, the architect might not know all side effects of applying required technologies which include 3rd party products, frameworks, architectural, or design patterns. Hence, there is a need to dive deep and learn about the capabilities, limitations, known issues, and best practices of different and unfamiliar elements. For this Solution Architect practicing prototyping, there are small proofs of concepts which, if employed, gives the confidence that the ideas the architect presents are working and is valid for the business cases of the project.
Architecting the product. Having formed a technical solution, the architect presents to the customer and during finalization all details receiving sign-off. In this phase, the architect makes a description of the top-level perspectives of the architecture. He might also work only on the pieces that are now in the development.
It’s not that common for the architect to produce detailed documentation on low-level design in modern IT. This is impacted by the nature of agile projects. A Solution Architect closely communicates with the delivery team, explains the architecture, discusses ideas, capabilities, and limitations. Low-level design is produced on-the-go during development and is instantly applied to the code. At the same time, the delivery team makes bidirectional feedbacks of the architecture, contributes with suggestions regarding which designs are working, what is not working, and what is hard to achieve.
Helicopter view. In most projects, each team or team member works on their part of the solution. For the more significant systems, there should be someone who understands that picture of the architecture in general, the universal principles, and the procedures. A Solution Architect is that person. The architect’s view of the development of the product is from the top vantage point. He has a clear picture of the architecture for the final product and all its related parts. He then draws these perspectives of the overall product using various diagrams and flow charts.
Of course, one person cannot know everything in detail or be an expert with all technologies. The architect’s primary goal is to see the general context and adequately coordinate the work of various technical areas. For example, if we need to take into account the security officer’s recommendations during legacy migration, the architect is the one to ensure and control that it was not forgotten in the design.
Architect Career Path
The solution architect position is good as it mixes great technical experience and partial managerial competency. From this position, you can move into a wide range of directions. At first, you can grow as a successful architect of the solutions and be highly profitable and the most sought-after expert on the market. In companies, you will be in a vital position with the most complicated and exciting projects, especially from the start. With some level of experience and managerial ambitions, you can even try to become CTO (Chief Technology Officer) of the company. You will be able to help build efficient technology strategies and evolutions. Secondly, you will be able to grow as a consultant and presale specialist, who most of the time, will work with customers and as a plus, often traveling around the world.
Read the full blog at the link below.