Moussa Jabateh | How Solution Architecture Can Influence A Product’s Business Value

Moussa Jabateh
4 min readApr 28, 2022

Oleh Svet, Chief Delivery Officer at Computools. Misconceptions About Solution Architecture

Software architecture is controversial since there isn’t a consensus on what the term means. In this article, I will share my experience regarding practical questions that nontechnical managers may encounter when choosing an architecture pattern, in which projects this type of solution should be applied and which will be the best in existing conditions.

This article is for those whose work is influenced by a solution’s architecture, typically project owners and solution architects. Through these specialists’ activities, a tandem is formed in which a project’s direction and method of implementation are set.

Objectives Of Solution Architecture

Problems occur when there isn’t a clear distinction between “architecture” and “infrastructure.” This is relatively common when there isn’t a defined project owner, or the designated project owner lacks deep technical experience.

Note that a project’s infrastructure is the technical interaction between system components, resources and the system itself. It tends to grow and expand by adjusting settings and microservice or monolith approach compliance. Any solution will work if the infrastructure meets the technical and cost requirements of server capacity.

How Architecture Affects Development Speed

Architecture is crucial to ensuring an efficient development process and is influenced by issues such as business decisions, calculating the budget allocated for server capacity and overall system performance.

Deadlines can change, and team qualifications and experience can vary. Compensating for flawed software architecture is possible, but look to create an architecture that supports a project’s bigger picture whenever possible. Another critical aspect of paying attention to is infrastructural solutions.

Speed of development depends mainly on the following factors.

* How quickly a new feature can be implemented within one iteration, including debugging.

* How fast can existing functionality be modified or reimplemented within one iteration, including debugging.

* How quickly a senior developer can get started on the project.

* The speed with which a developer adapts to the project.

* The pace at which performance decreases as new team members join the project.

* The overall size of the development team.

The following elements may affect development speed.

1. The number of human hours needed and how that affects a project’s estimated cost, excluding the cost of software, libraries and hardware.

2. The deadline and its requirements.

How soon a deadline can be reached, and the architecture created depends on the size of the development team. However, budget is also important to consider here. If the project is based on hours, then it can get the same features faster on the same hours if more specialists are working simultaneously. Another solution is to modify the current features quicker with an anticipation of future needs. The third thing to consider is not the speed or number of engineers but the skill level of each specialist.

How To Design An Optimal Architectural Solution

To prevent inflating a budget for software development, it’s necessary to plan its progress and create a safety margin.

Success usually depends on the implemented team’s predictability, not on how fast the project develops. To create win-win situations, teams on all sides need to interact harmoniously with streamlined communication and a solid strategy.

It’s always a set of compromises that take into account the speed of implementation, the cost of implementation, the need for potential changes in the future, goals, capabilities, and-just as importantly-strengths and weaknesses, capabilities and plans for scaling teams.

The right architectural constraints create an environment where the team can work effectively, comfortably and predictably while achieving its goals.

The project owner should provide all information to help the architect develop optimal architecture, and the architect must be competent enough for effective implementation.

Here are a few parameters that might well satisfy the request for fundamental points in the development of architecture.

* Knowing the high-level requirements and potential risks.

* Having resources and solid information about the domain.

* Understanding the size, structure and expertise of the implemented development team.

* Having a team-scaling strategy.

* Having an HR strategy to prevent developer turnover and hire new team members in case of turnover.

* Planning the project life cycle and maintaining it.

* Being aware of the project’s budget and deadlines.

Now, let’s identify the main parameters of software architecture.

* The ratio of feature implementation at the current moment to future implementation.

* The level of individual productivity with the ability to scale the team.

* A focus on unique talents that are optimal to the project’s needs.

Super talented developers are not the only prerequisite for the success of a project. It requires an experienced solution architect, a team leader and a cohesive team of project managers.

Forbes Technology Council is an invitation-only community for world-class CIOs, CTOs and technology executives. Do I qualify?

Originally published at https://www.forbes.com.

--

--

Moussa Jabateh
0 Followers

Moussa Jabateh is a technical architect with industry experience managing the development, implementation and delivery of product solutions.