A software architect is not a senior developer

There are some IT departments till this day who believes
that by hiring a senior developer they can fulfil the role of a software
architect.
Senior developers have much knowledge about the full
software lifecycle and can be trained to be architects but are they are not. A software
architect first and foremost is a visionary. It helps that an architect has some
software development experience but most of the time, he will be exposed to a
polyglot environment. Before a single line of code is written, the architect
will have to map out how the business requirements can be translated into a
solution. This not only requires knowledge of the business environment, from
operations to infrastructure, but to present a convincing system to the
stakeholders. Requirements such as scalability, latency and security will be
missed from initial development stage if not tackled early on. Senior
development understands their team and their abilities. Senior developers can
manage workloads amongst team members and make sure that the under-development project
meets its architectural goal.
The architect will decide how a requirement should be
developed in order to meet the business requirement as an example:
The business has
offices around the globe, the business requirements require the website to be
fully loaded within 3s regardless of the location of the user and handle a
minimum load of a hundred thousand users. 
The above requirements are dealing with the architecture of
the system not that we can authenticate a user against an Oracle DB.
It is important to note that many Software Architect were
previously working as Senior Developer (such as myself) but nonetheless, many
senior developers have no interest in architecture. Choosing if a system should
use Tomcat or Glassfish and Apache Webserver for load balancing is the domain
of the Architect. Doing code review and making sure software development
pattern are well applied, is the domain of Senior Developer. A senior developer
can also choose a development methodology such as SCRUM with the approval of the
Project Manager. The architect would attend meetings with the various
stakeholders: end users, operation, infrastructure, development and testing
teams. When the business asks why is the system slow, they will turn to the
architect. The architect would then have to sit down with the lead senior
developer and review that the current development meets the architecture goals
or if there are faults in the architecture design.
I am a software architect and I can easily communicate my
vision to the development team but I am also a senior developer who still loves
hacking the machines. I worked in an architecture committee and came across
architects who have no development experience which I think it is wrong. An
architect should appreciate other development languages not to be biased toward
a single one without any merit.
I hope that more companies will appreciate the role of
software architects in software projects regardless of its size.

3 Responses

Add a Comment

Your email address will not be published. Required fields are marked *