Solution Architect — Who Am I?
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. Today, I wish to share my vision of the role of a Solution Architect and what the key responsibilities are for such an expert. Also, I want to share my knowledge of how developers and technical leads could grow to such a level.
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.
How to become an architect
The Solution Architect is a natural career evolution step for current Senior Developers or Team/Technical Leads, who wish to continue moving in the engineering direction. Per standard practice on those roles are those who already have in-depth knowledge of at least one technology stack. They are involved in the low-level design of the components and understand important principles: going live and operations of the system require much more than just writing the code.
There are specialized courses that will help you to become an architect. You can find a senior architect and ask him/her to be your mentor and to discuss and align on the architectural topics or learning paths. Also, you can join architectural communities to follow new technologies and participate in architecture katas and other events.
At OSF Digital, we have learning paths, mentoring programs, and architecture boards that can help you become a successful architect. I managed to put this architecture program into practice within 6 months together with some excellent colleagues that supported me to make this happen. Some of the elements mentioned in this post are public and I will share them at the end of this article.
The following tips might help you reach into the architect’s role of solutions:
- Broaden your horizons. You should be very interested in the different aspects of how systems are developed and delivered. How it is working in production under the operational team. What happens after code is written and the systems work. How the systems are deployed into production. How the systems integrate with other systems. What the plan is for migration from the legacy system to the new one. How systems during movement will behave.
- Work more with business and managerial stakeholders. Participate in the discussion of the business goals and what the customers’ problems are. Look at the requirements not only from the code and technology perspective but also from the full project vision. Include into your vision business-driven approaches. Bring into the business discussions the technical point of view, but do it with an understanding of all stakeholders’ interests and problems.
- Grow your communication and presentation skills. Unlike technical leads, the focus is on technology and development. The architect plays a crucial role in the communication with the customer and project management. In the zone of his responsibilities, there are negotiations and presentations of technical solutions from the idea step to the final delivery into production. Such specialists should be able to explain very well all technical points using business language, he should be able to defend his point of view and listen to and understand the interlocutor. Without good English, which is the language of global business, of course, this will not be possible to achieve.
- Understand core practices in the architecture domain. Architecture is not a new discipline, and there are a lot of books out there on the topic. You should definitely make a good friendship with them. Take from them some of the most essential principles: work with functional and non-functional requirements, drawing the excellent and well-understood diagram, professional composing of the technical documentation of the project.
A few fundamental books are widely recommended, and I would like to highlight two of them here as well. Those books are a must-have for those who wish or already practice solution architecture:
- “Software Architecture in Practice” by Len Bass, Paul Clements, Rick Kazman;
- “97 Things Every Software Architect Should Know” by Richard Monson-Haefel.
One of the rising stars from the book radar I have on my end is “Fundamentals of Software Architecture: An Engineering Approach” by Mark Richards and Neal Ford. I am highly recommending it as a starting point.
It’s worth mentioning that if you would like to get some architect certifications, I recommend personally focus on the process. Nowadays, we have many certifications that are good for specific domains. At the same time, you should focus on the process while you prepare for the certification and not on the diploma itself. I am personally targeting IASA (International Association of Software Architects) and SEI (Software Engineering Institute) certifications, while I do have some domain-specific ones from Salesforce already.
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.
Industry payback
As a member of the global IT community, member of the eCommerce domain, and merely a human, I appreciate all the knowledge that people share, and I’m lucky to be able to learn from them. I would also like to make my impact on the industry; hence, I will share with you today two (2) learning paths that I was building around the 6 months I mentioned earlier. These 2 learning paths are now used in one company as part of the Architecture University, helping people to become and grow as architects:
- Solution Architect — Level 1 — Fundamentals. Being a successful solution architect is more than just possessing technical knowledge. It’s about thinking like an architect, being a leader, and understanding the architectural elements, patterns, and styles necessary to create effective architectures.
- Solution Architect — Level 2 — Associate. The goal of this course is to continue your journey to become a successful solution architect. As you already know, becoming a solution architect is more than just possessing technical knowledge. We will also cover some essential soft skills and help to expand your managerial and leader mindset.
- There is also Level 3, which is still in progress and probably will take a few more months to be revised several times before it is completed. At the same time, I do not like it when I read similar messages on the web that don’t provide a link or any other way to get updates, so I have decided to share a public draft which will be the final link. I will comment on this post and update subscribers when it has been completed. Solution Architect — Level 3 — Professional [DRAFT]
In addition to what is presented here, I want to announce that I am willing to become a mentor to any who wish to become a Solution Architect. I was and still am a mentor to the number of successful and now practicing Solution Architects inside OSF Digital. I feel it is time to bring this to another level. Please comment on the following social media pages where I will share this blog post:
I will reach out to everyone to have a short chat about your situation. I will pick one or two persons for whom I will have a strong feeling and that I can help the most efficiently.
My name is Oleg Sapishchuk, and I’m an experienced architect providing digital transformation with unified commerce solutions for some of the world’s best-known and most influential brands. Salesforce B2C Commerce is the topic that I write about most frequently. If you are interested in new or previously written material, I invite you to follow my Medium profile.