Become A Great Solution Architect – Chapter 2 – The Requirements

1 - Vision

A great solution architect can draw the big picture of a solution in a fashion all stakeholders can read and understand. And he can present it, including all the objectives and how every stakeholder can contribute.

A common understanding of the solution is essential for the success of the entire project. Because, if some stakeholders have a different opinion or interpretation of the solution, this could cause a problem.

Transparency is a crucial success factor.

So, if everyone in the project team, from the product owner over the business analysts to every developer and operational staff, can tell you the same story about the solution, the solution architect did a great job.

2 - Communication & Presentation Skills

A great solution architect is a great communicator since this ability is a vital part of his competence. Along the entire road to successfully realize the defined solution, there is a lot to discuss, negotiate, and specify with every single stakeholder. Therefore, the solution architect listens carefully, explains properly, gives valuable advice, and understands the stakeholders’ intentions.

Being present on the project – even virtually – gives stakeholders confidence in your work.

Presenting the architecture, results of proofs-of-concept, and sharing insights about the progress of the implementation process and the quality of deliverables is an essential part of his work.

Do good things, and tell about it.

3 - Organizational and Leadership Skills

Of course, the solution architect does not play the role of a project manager on top of his work. But, since he gets directly involved due to his essential position inside the project, he has to deal with deadlines, given resources, and must be focused on the project’s results. His objective is to succeed in achieving the milestones.

Go the extra mile – it’s more than merely writing a concept and test implementation.

Besides this more visual part of work, a great solution architect mentors the lead developer and, if necessary, parts of the development team. His objective is to get an impression of how the development team implements the architecture. In case there is a mismatch, you better know about it in an early stage.

Mentor the team which implements your ideas.

4 - Modelling Methods, Frameworks, and Best Practises

A vital part of a solution architect’s work is to document the architectural approach in a standardized way. Here, architecture design patterns can scaffold the fundaments of the solution architecture.

Modeling methods like the Unified Modelling Language (UML) depict the solution architecture in a fashion the development team understands and uses it as the basis for their implementation.

Standards are your friend.

Since more and more software projects go the agile way, the solution architect is familiar with frameworks like Scrum and Kanban, which help to organize the development and delivery process but also found the planning of product features.

The solution architect is continuously looking for best-practice approaches and game-changing tools and technologies.

Stay open to new impressions.

5 - Knowledge of Software Development

At the end of the day, the development team will implement the architected solution. It is, of course, not part of the solution architect’s job. But, it is beneficial to understand how developers think, how they act, and what things they do not know in detail.

Software developer experience helps to assess the developers’ progress and quality and offers the possibility to support the team.

Besides, a solution architect shall be able to code on its own – at least for technical evaluations or entire proofs-of-concept. Therefore, the knowledge of at least one of the top three popular programming languages will boost his possibilities. We are currently (2020) talking about JavaScript (EcmaScript 6, TypeScript, NodeJS), Python, Java, and C#.

Coding skills are helpful, but you don’t need to write production-ready code.

In case there is a need to assess code quality, the solution architect could dive in, but then his knowledge of the particular programming language must be excellent.

6 - DevOps

It defines an approach to shorten the software development life cycle and provides continuous delivery of high-quality software with the help of a dedicated toolchain.

Since the solution must finally run in the production environment, the solution architect, the development team, and the operations team shall work together to find an excellent process and to select the vital supporting technologies.

To ensure that, the solution architect helps with the setup of DevOps processes, like the planning of the building, automatic testing, packaging, releasing, configuring, and monitoring.

The objective is to define an (automated) process to build, test, and deploy properly working software.

The solution architect considers the DevOps approach during his architectural work by examining the staging environments, e.g., development, testing, acceptance/reference, and production.

7 - Analytical Skills

A great solution architect is an excellent listener and structures the insights he gets accordingly. Collecting data, interviewing stakeholders, and reflecting the gained information will help get a holistic picture of the problem.

Based on this treasure, he can focus on details to fully understand the business needs and processes.

Another essential attitude of a great solution architect is always to reflect and question the information he gets.

8 - Tech Domain and Industry Knowledge

An experienced solution architect has a lot of expertise in different types of projects enabled by various technologies. Furthermore, he specializes in some way towards key tech domains, e.g., IoT, Cloud, AI, Big Data, etc.

There usually are a lot of best-practice approaches, architecture design patterns, and out-of-the-box examples well known in these tech domains. Furthermore, an experienced solution architect gained a lot of knowledge from proofs-of-concept and knows about the pitfalls of key technology implementations.

Experience with technology stacks is significant. Besides the knowledge of specific technologies, it is beneficial to know about the processes, methodologies, and do’s and don’ts of particular industries. Industries like finance, healthcare, energy, automotive, etc., have their own rules and restrictions. Especially in the phase of interviewing or reviewing the business (functional) requirements, domain knowledge can help identify mistakes in specifications. Industry know-how is beneficial but not crucial.

Summary

All the requirements mentioned here are the essence of my personal experience and opinion and reflect the demands of companies hiring solution architects. Of course, it can’t be a collectively exhaustive line-up, but I deem it touches the most prominent topics.

In case you believe this article can help others sharpen their focus, or reflect themselves, feel free to share it.

Hope to see you again in the next chapter!

Photos on Unsplash