Forty-nine percent of the companies surveyed by Planview have seen a project fail in the past 12 months.
In a rapidly changing technology environment, organizations face the need to transform their processes and systems to meet emerging business requirements. This digital transformation demands a specific expertise and a set of practices to align business focus with technology solutions.
Solution architecture belongs to the list of most important practices executed before any tech solution development begins. In this article, we’ll discuss what solution architecture is, describe the role of a solution architect, and explain how the adoption of this practice can help solve business problems.
What is a solution architect?
Solution architecture is a practice of designing, describing, and managing the solution engineering in relation to specific business problems.
A solution architect is the person in charge of leading the practice and introducing the overall technical vision for a particular solution. While the practice can be managed in-house, there are companies that provide solution architecture consulting as a specific set of services.
Each of these terms includes multiple aspects that we’ll discuss in the article. If you want to catch all details quickly, check out our video about a solution architect role.
What is a solution architect and how this role is different from a software architect and enterprise architect ?
Enterprise architect vs solution architect vs technical architect
Solution architecture is a complex process – with many sub-processes – that bridges the gap between business problems and technology solutions. It encompasses:
- Finding the best tech solution among all possible to solve the existing business problems.
- Describing the structure, characteristics, behaviour, and other aspects of software to project stakeholders.
- Defining features, phases, and solution requirements.
- Providing specifications according to which the solution is defined, managed, and delivered.
However, there are two more architect-level positions that are often confused: the enterprise architect and the software architect. Let’s clarify the main differences.
Besides these roles, some specifically add an infrastructure architect to the paradigm. This position becomes relevant for organizations that maintain complex hardware infrastructure in-house to support operations.
What is an enterprise architect?
Enterprise architecture, which we covered in a dedicated article, focuses on building complex enterprise ecosystems and solves high-level strategic issues. Enterprise architecture defines strategic directions of the business architecture, which then leads to an understanding of what technology facilities are needed to support that architecture. So, in other words, the enterprise architect defines what has to be done, while the solution architect then decides how to do it.
The enterprise architect has the broadest view of the company’s current state of architecture and target goals. It is this expert who is responsible for creating a strategic plan of implementing technical changes. This person works closely with top-level executives and decision-makers as he or she demonstrates them the business value of suggested technical initiatives.
What is a software architect?
A software or technical architect is mainly in charge of engineering problems and software architecture. We have a detailed article describing the role of a software architect and the importance of this position to the company’s success.
Unlike the solution architect, the software architect typically doesn’t deal with financial and organizational issues. This person focuses on all the aspects related to software engineering on a particular project, i.e., development, implementation, maintenance, support, and evolution. Software architects closely collaborate with development teams and control the entire development process. So, continuing the previous example, the software architect determines what exactly has to be done and how the result can be maintained.
Having discussed the peculiarities of the other two roles, we can see that a solution architect’s position is in between the top-level, business-oriented enterprise architect and the more technical and detail-oriented software architect.
Solution architecture describes how different components of business, information, and technology architectures are used in a particular solution. As solution architecture is more focused on details and solution technologies to address a specific business problem, it provides a channel between enterprise architecture and technical architecture. The latter is focused only on technical issues. An effective approach for companies is combining enterprise architecture activities with solution and technical architecture activities.
Solution architecture and its main processes
Well-built solution architecture helps teams develop the product on time and on budget and ensures that it solves the problem it was designed to solve. So, what tasks does solution architecture actually carry out?
Matching solutions with the corporate environment
Usually, companies already have operating systems, an information context, and integration requirements. The solution architecture helps ensure that a new system will fit the existing enterprise environment. To perform this task, a solution architect has to understand how all parts of the business model work together including processes, operating systems, and application architectures. Understanding these processes, they will be able to design a specific solution that fits the environment best.
Meeting the requirements of all stakeholders
One of the most important challenges of software product development is meeting the stakeholders’ requirements. Usually, a product has a number of stakeholders that are both technical and non-technical specialists. Solution architecture’s aim is to ensure that all their requirements are taken into account. Stakeholders have to be regularly informed about product development processes, costs, and budgeting. These tasks are usually done by a solution architect who translates technical project details into a language that management and non-technical stakeholders can understand.
Accounting for project constraints
Each project has its limitations usually referred to as constraints. These include:
For instance, a product is built with technologies that must suit the requirements of its particular modules. A project scope is a part of software documentation that defines specific goals, tasks, features, and functions. All projects also have an allocated budget.
While these aspects are constraints in themselves, each of them has its own limitations. The solution architect must understand all these constraints, compare them, and then make a number of technological and managerial decisions to reconcile these restrictions with project goals.
Selecting the project technology stack
A vital part of creating solution architecture is the selection of technologies for product development. The technical architecture strategy will directly depend on the chosen technology stack. There are a lot of different practices associated with platforms, programming languages, and tools. The solution architecture function here is to find which of them will be the most suitable for a particular project. It’s not an ordinary task requiring technology assessment and comparison.
Compliance with non-functional requirements
All software projects have to meet a number of non-functional requirements that describe the characteristics of the system. These are also known as quality attributes. While the exact list of non-functional requirements depends on the complexity of each individual product, the most common of them are security, performance, maintainability, scalability, usability, and reliability of a product. The solution architect’s role is to analyze all non-functional requirements and ensure that further product engineering will meet them.
Since we’ve discussed high-level goals of solution architecture adoption, let’s break them down into specific responsibilities and underlying skillsets.
Solution architect role description and responsibilities
The solution architect’s job focuses on solution-level decisions and analysis of their impact on the overall business goals and outcomes. Just like the architect in the construction industry creating a general blueprint of a future building, a person at this position must have a profound knowledge of available technologies to suggest the best solution according to the incoming requirements and existing environment. So, we can say that the product of a solution architect’s job is the set of technological solutions and the strategy of their implementation.
After developing a strategic technical vision of the product, the solution architect is involved in estimating the budget and presenting it to the stakeholders. Once everything is agreed upon, he or she monitors the process of development and keeps stakeholders informed about the progress.
A solution architect’s responsibilities directly derive from processes in practice:
- Analyzing the technology environment
- Analyzing enterprise specifics
- Analyzing and documenting requirements
- Setting the collaboration framework
- Creating a solution prototype
- Participating in technology selection
- Controlling solution development
- Supporting project management
While most of these responsibilities require a leadership role from a solution architect, this person just supports PM activities to ensure that resources, risk recognition, and planning stay aligned with the solution goals.
Solution architect skillset and background
If you have already realized the importance of solution architecture in your projects, the next step is to source and hire the person for the role. We’ve considered the core skills that a good solution architect must possess.
Technical background and experience
To provide management and engineering teams with technical advice, a solution architect must have a technical background with at least eight years of work experience in one or more IT areas including but not limited to:
- IT architecture, infrastructure, and cloud development
- Engineering and software architecture design
- Business analysis
- Project and product management
Excellent communication skills
A vital part of the solution architect’s competence is communication. Considering that this role entails negotiating with stakeholders, understanding the needs of all parties, managing risks, and product delivery, the lack of communication skills can create a real bottleneck. The position requires working closely with enterprise and software architects, business analysts, and project teams. So, an experienced solution architect should be able to listen, advise, empathize, and explain.
Deep analytical skills
Designing a solution requires understanding how different parts of the business work together. The architect must recognize the corporate strategy and realize all business processes that define how a company achieves its strategic goals. But, the architect must also understand tech specifics. As a result, solution architects constantly deal with analytical work and move between various business layers.
Project and resource management skills
While a solution architect doesn’t directly get involved in project management, accounting for deadlines and given resources is inevitable. Solution architects must be able to make decisions about which solutions are advantageous and which are worthless in the particular situation. They must be focused on business results and understand how to achieve them according to the given timeframes and resources.
Besides that, it’s important that solution architects consider the project in a long-term perspective and understand that the solution might need to scale and adapt to possible changes in the future. So, being the one who knows the ultimate target, they guide the development process accordingly.
When a company needs solution architecture consulting ?
Solution architecture can be introduced to the corporate structure by technology consulting organizations if the process of integrating new software systems isn’t systematic. On top of that, there is no need to have a solution architect for every single project. If you implement a single tech module that is proven to be working in similar contexts, you don’t need a solution architect. Once software engineering projects grow more complicated and entail a bigger number of processes and risks, it’s better to consider solution architecture consulting services.
Let’s have a look at the cases when solution architecture consulting is recommended:
You don’t know which solution fits the enterprise ecosystem best. You need to forge a link between the existing enterprise architecture and the particular project. Solution architects will guarantee the solution meets the standards of your company environment. For example, if you move a number of existing back-office processes to cloud, a solution architect is in charge of analyzing multiple options and suggesting the most relevant ones in terms of technology, human, and financial resources.
You run a digital transformation project. Digital transformation requires businesses to reconsider either how they deliver value to their customers or what they will eventually deliver. There’s no way to answer these questions without linking technology and business perspectives, which is squarely in a solution architect’s wheelhouse.
You face a lot of risks. A solution architect is necessary in projects where many technology risks are present, uncertain requirements can appear, multiple products must be implemented at once, or the underlying technologies aren’t approved yet.
You must pitch a product roadmap to investors. If you must present a future product to investors and stakeholders, a solution architect will suggest the technologies that will match product requirements and communicate the reasoning in plain and clear business terms.
You need to set up communications between stakeholders and engineers. A solution architect will help to fill the communication gap between technical and non-technical specialists. Also, by collaborating with the project management team, solution architects cover the risks of product misalignment with stakeholder requirements and ensure that the solution fits the defined purpose.
Many teams are involved in the project. You may have a large project that requires someone to manage designers, technical or business architect teams to produce a quality technical project outcome.
Solution architecture is the underpinning for any IT project, regardless of whether you actually adopt this practice or not. By deliberately introducing solution architecture, you build the framework that aligns technology, resources, and skills with defined business goals.
Prior to considering solution architecture, we recommend exploring enterprise architecture frameworks that combine both solution and enterprise levels.
Traditionally, small and mid-size businesses consider neither the practice of solution architecture nor the respective role justified. Addressing solution architecture problems is delegated and shared across other roles within a product team. And, it’s a viable option for small projects with predictable outcomes. However, if you have a complex enterprise architecture that introduces multiple software products into a functioning ecosystem, you need to fully rebuild your legacy software, or make a set of strategic technological decisions, the relevance of a dedicated specialist is obvious.
ref : https://www.altexsoft.com