I keep getting questions from some of my friends, as to what
the role Solution Architecture is all about and will they be a fit for that
role. For the benefit of every one out there, I thought of putting together my
thoughts on the role of Solution Architect. Let us first examine what is
expected out of this role and then look at the skills needed to be in this role.
As the title indicates very well, the role is expected to
bring in solution to varying business problems, most which could be a product
or project by itself. But, as you know, it is always a challenge to come up
with a best solution due to it being intangible and that there are many quality
attributes which are not completely identified and specified. There would be
lots of missing links in the areas of business domain, choice of technology,
hardware components, business processes, future domain and technology trends,
etc which the Solution Architect should
be able to connect and come up with best solution that could last longer, so
that the organization reaps the return on investing in the solution.
Some of the key characteristics of a best Software Solution
are:
Longivity: While
the solution must solve the current business problem, it should also be reliable,
usable, secure and also future proof. This means that the solution Architect
should consider the industry and technology trends that could have an impact on
the problem / solution in the near and longer term.
Trade off: The
challenge with the various mostly unspecified quality attributes is that they
are interdependent. And meeting one such attributes may most likely mean compromising
on another. Obviously, a lot of trade off has to happen between various quality
attributes and such trade off should be justifiable in the context of perceived
benefits for the organization. For instance, performance may have to be
compromised to achieve better security. The tradeoffs have to be carefully made
after considering various factors, like the risk appetite of the organization, target
users of the solution, the technology platform, current IT investments of the
organization, etc.
Implementation view:
It is important that the solution should be devised with the intended
deployment view into consideration. Without that, it could so happen that the solution
as designed and built may call for massive changes to the infrastructure
investments, which could be a total surprise for stakeholders. Such surprises
emerging towards the close line of the project could increase the cost by
manifolds or delay the project further.
The above is not the exhaustive list. There are many other
factors that will have to be given due consideration before coming up with the
best solution. Above all, the solution architect should be able to see that the
solution is successfully implemented and put into use. That means, a lot of
work in terms of convincing the stakeholders as to why this solution and not an
alternative, hand-holding the design and development team and also to some
extent the end users to have it implemented the same way it was intended.
With all the above, let us now try to identify the essential
skills of an aspiring Solution Architect:
Domain skills: A
thorough understanding of the business domain is required to first understand
the problem better and second to know the potential future needs that may
emerge along the same lines of the problem space. It is also important that the
person has the ability to learn things fast, as in most cases, there won’t be
lead time for him to gain appropriate business skills. That means, the Solution
Architect should also be a Business Analyst.
Technical skills:
A thorough understanding on the technology currently in use in the
organization, the technology currently in use in similar industry domain and
the emerging future technology trends. This knowledge is essential to ensure
that the solution does not become obsolete soon and that the organization is in
a position to be ahead of completion in terms of IT enabled capabilities. At
the same time, applying a new technology early in its evolution has its own
issues and it is always better to wait for the technology to evolve and mature as
more and more organizations adopt the same. It is important for a Solution
Architect to closely follow technology trends and gather enough knowledge to understand
what could be the best fit for solving various business problems on hand. He
should have enough understanding of the technology chosen, so that his team
(mostly himself) comes up with a prototype to establish that the solution
really solves the problem. However, as the solution goes further down the implementation
lane, the Solution Architect should be able to demonstrate hands on skills, so
that he could command expertise and be the go to person for resolution of
issues.
Team skills: Though
mostly the Solution Architect will be an individual performer, some
organizations may have dedicated teams to assist the Architects. Even in case
of Architects acting as individual performers, the solution is implemented by a
project team. So, the Solution Architect needs to be a team player and should
with his domain and technical expertise, lead the team by example.
Process / Project
Management Skills: Needless to say that the Solution Architects have to
have the Project Management skills too, as one may have to manage the
pre-solution activities as a project. For the purpose, he has to be familiar with
the processes as well.
That means, the Solution Architect should be an all rounder
with moderate to expert level skills in all the areas. On top of these skills, one has to understand
that solutioning is not just a science, but also an art, which is mastered with
years of experience over as many projects and years involving various technologies
and domains.
There could be different views on this and comments or
opinions are welcome.
No comments:
Post a Comment