Forty-nine per cent 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 specific expertise and a set of practices to align business focus with technology solutions.
Solution architecture belongs to the list of the most important practices executed before any tech solution development begins. In this article, AltexSoft discusses 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 a person in charge of leading the practice and introducing the overall technical vision for a particular solution.
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, behaviour, and other aspects of the 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. 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 a 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, 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. 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 analyse 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:
- Analysing the technology environment
- Analysing enterprise specifics
- Analysing 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
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 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, empathise, and explain.
Deep analytical skills
Designing a solution requires understanding how different parts of the business work together. The architect must recognise the corporate strategy and realise 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 a particular situation. They must be focused on business results and understand how to achieve them according to the given timeframes and resources.
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.
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.
Article Credit: AltexSoft