Architecture is the single most important factor to solve a problem in any industry. It is also the first ever approach to a solution. A well thought out, precise and technologically feasible architecture will save a lot of time and resources and may be change the way we live. On the other hand, if the architecture of the solution does the opposite, it could do irreparable damage. That is why role of the architect is very important and competency of one makes a huge impact.
However, is technical competency the only factor that determines a good architect? Here, I am trying to find the attributes of the best solutions’ architects.
Technical competency is one of the most important qualities of a Solutions’ Architect. An architect needs to be abreast with the latest updates in technology, the best practices the industry follows, the tools, frameworks and processes. I agree, this is a bit too much for a single person to follow, considering the size and pace at which the industry dynamics change. But that is the way it is. It would certainly help to understand how an industry champion application works. It is always good to have references to the best practices, tools, frameworks, processes and technology used by successful application to come to a conclusion of your own.
Nevertheless, thinking that one solution and best practice would fit every problem would be foolishness. How to choose the right solution is another subject altogether that I will try to cover later in the article. The basic idea is to understand why an application is successful. There could be a multitude of factors that affects the success and failure of an application. Remember, Success is never and accident, it is a long process that requires a lot of perseverance.
Let’s take the example of a mobile application that you might be building. To build the best application the architect must know how a mobile application communicates with the server since the primary use of any mobile application is to perform actions remotely. The architect needs to find answers to this single most important question to architect a champion application – “What tools, technology and process would help me arrive at a feasible solution?” From this question begins the long road to a great architecture.
There is a trade-off between the best solution and how it would perform for the stakeholders. It is a bit like learning to drive in a simulator. In a simulated controlled environment, everything works as expected, however when you hit the road in a real car, things are very different, and people think differently than a simulated environment. Therefore, if you are solving a problem using all the best practices and the solution presents a new problem then there needs to be a better version of the best practice. This is how a best solution is architected.
In every industry, an architect’s job is to solve a problem his customer faces. To create the perfect architecture to solve a problem the architect must understand the problem completely. A problem the customer faces could be because of the process they follow, the tool they use or the technology they chose. Therefore, to understand the solution, a good architect should investigate the problem. To investigate, the architect should involve as much stakeholders of the solution as possible and ask questions to figure out where the gap or the root cause of the situation lies. The architecture is meant to work for everyone who uses the system and involving only some sections of the stakeholders would not help architect the best solution.
The success of the solution depends on the stakeholders’ acceptance of the solution. Even if one section of the stakeholders rejects the solution, the entire application may turn out to be economically non feasible relative to the business value it generates. This might lead to the rejection of the entire solution due to bad architecture.
Arriving at a perfect architecture is an ongoing process. The solution should metamorphize by adding patches, revisions and design changes to all engineering modules. This should be done by taking feedback from all the stakeholders. Therefore, it is important for the architect to leave an open channel for communication and feedback with all the stakeholders. If timely and accurate revisions to the architecture are not made, it might fail in the future due to non-acceptance.
An architect should also be very good at presenting the solution. Since the architect is advocating for the proposed solution, he should be prepared to answer any question that the stakeholders might ask. Moreover, everyone who is going to be affected by the solution deserves a great presentation.
The linguistic ability of the architect should also be very good since he could be explaining a technology solution to non-technical stake holders. In this situation the architect should avoid using jargons of his trade and stick to simpler words and explain patiently. For example, an architect might have to present his cloud solution to stakeholders from the finance department. A good idea in this situation would be to start by explaining what cloud computing is.
A new architecture could bring out a revolution to any industry and making the stakeholders accept this change is a challenge. Implementing change attracts resistance and a good architect should be able to foresee this situation. If this solution is not accepted by the stakeholders, the architecture would die at proof of concept. An architect should always be ready to face and manage bitter criticism. However, constructive criticism should be taken at face value and if it is a part of the original problem that the architect missed; a solution must be presented. This could help in taking all the stakeholders into confidence and better help the implementation.
There is no instant solution to many problems. A good architecture would take time and patience to evolve. The key to the best architecture is its flexibility to accept changes. These are just a basic overview of traits that a good solutions’ architect should possess. There are a lot of other design guidelines that a architect should follow and that is for another article.
Do you have an interesting project?
Let's talk about that!