Forty-nine percent of the companies surveyed by Planview have seen a project fail in the past 12 months, according to the results of the 2017 Project and Portfolio Management Landscape summary.
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.
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.
Enterprise architect vs solution architect vs technical architect
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.
Solution architect. Solution architecture (SA) 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, behavior, 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.
Technical architect. A technical architect is mainly in charge of engineering problems and software architecture.
Some specifically add an infrastructure architect to the paradigm. This role becomes relevant for organizations that maintain complex hardware infrastructure in-house to support operations.
Solution architecture in the context of the enterprise and technical architecture
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.
The main processes covered by solution architecture
Well-built solution architecture helps teams develop the product on time, on budget, and ensures that it solves the problem it was designed to solve. 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 reffered 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 responsibilities
The solution architect’s job focuses on solution-level decisions and analysis of their impact on the overall business goals and outcomes. The person’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 role description
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 gets 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.
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 an identified 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.