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.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)