What is a software architect?
It is the renaming of a traditional role. It attempts to embellish what we used to denominate as a "Software Design Engineer" due to a fad or trend that is ocurring.
I already believe that we have so many roles and titles that its becoming a little, well, excuse me, ridiculous.
To my dismay I observed in the fishbowl last Tuesday that some folks have personally identified themselves with the adejective in question: "ARCHITECT" and they literally looked like if their ego was attached to it. I am sure they will outgrow it when the industry follows a new trend with some fancy name such as: "Virtual Creator" now that virtualization is a fad. Yes, I remember when software developers would consider themselves "creators". Writing a program was defined as a "software creation process". If a farmer creates crops, eggs, and milk then why can't we create?
I still believe that in practice this could be a role, maybe a title, but definitely it is not yet a profession. Anyways, we have enough titles already. We have literally stolen titles from every industry I can think of. Well, we haven't seized the medical field titles yet but I can predict that soon we will. Maybe I will become a network neurologist or a core cardiologist, or an infrastructure traumatologist, hmmm, what else?
The term is definitely useful to get the attention of recruiters who use it as a keyword to search for potential candidates. It is "commercially" appealing at the least.
Albeit IBM used the term for its key engineers during the eighties after the term "scientist" didn't fit very well in the mainstream business world, it had started to fade away with the massive outburst of new information technologies in every sector, thereafter the terms "software engineer" or "computer systems engineer" became more popular in accordance with a conservative corporate world.
Bill Gates made the "architect" term popular once again when he stepped down from his executive position and was self-proclaimed as chief software architect. He was careful of not losing his "C" title. Many followed. But he could have proclaimed himself anything and he would have had followers. As it happens with every hype, this one faded away.
Until now! It has been rebirthed due to another fad: SOA. A few years ago folks would rather call themselves: team leaders, project leaders, development managers, directors of development and the sorts. Leader was the best component of a title even if you were the last one in the organizational chart with no followers to lead. If this latter was the case you were a leader by persuassion, or influence.
Don't we adjust things easily when the round pig doesn't fit in the square peg. Or is it the other way around?
How many universities out there offer a Software Architect pensum? I was unable to find courses that would even cover the subject, maybe "Software Paradigms"?. I visited both Stanford's and Berkeley's websites.
Another question is: Can it be considered a profession if it hasn't been formally embraced by the academia world? No. But it can still be a job title and certainly a role. I couldn't find the title in Salary.com where architect is mainly for landscapers and database builders.
The fact is that the activity that a software architect should perform is that of a designer and not of an implementor. Implementing has a granularity mindset and not a big picture one.
To perform the role of software designer (or software architect for those of you with a freemason complex:. :) you have to possess certain traits, among them:
1. Vision,
2. Big picture mindset,
3. Knowledge of the technology you are using and integrating with,
4. People skills,
5. Project management skills,
6. Strong leadership,
7. Self-constrained (Getting away from the low-level details like: "Not programming!")
Should a software architect perform low-level activities? Certainly not. If you architect and implement I can foresee a project without an end. The same reason technical project managers have been substituded by non-technical ones has been for almost the same reason. When the project manager got involved in technical details the scope of the project became a "moving target". And by the way, a "moving target" is not a positive connotation for an executive team. Non technical project managers limit all activities within the scope and only change them when it is meant to mitigate an unforeseen risk that popped up.
In conclusion and in one sentence: "A software designer (or software architect) as a person is an individual that performs the activities of forethought calculated analysis, creative design, and mindful projection of that which will result in the materialization of a service, product, or solution that fulfills the requirements of a specific business need within the margins of a well defined scope and that can be clearly understood by all the stakeholders involved."
Michael Planchart