The term “Software Architect” has been widely blown up over the past 10 to 15 years in the job market. But lately it has widely spread to the small business market, almost out of control. I would say, more times than not, used way too much.
Here is a quick run down of a general definition of roles:
Solutions Architect – Person responsible for advancing business solutions that require interaction between multiple applications.
System Architect – Person responsible for the development of a system, even on an enterprise level, but only one system.
Systems Architect – A synonym for Enterprise Architect or Solutions Architect.
Enterprise Architect – Person responsibe for highly abstract systems across an organization.
Application Architect – Centered on a single application, single project, which is extremely detailed.
Maybe I am just used to contracting with larger organizations, but it seems that the term Architect seems to get floated around much more than it should be for small organizations where roles are so blended and shared between single employees. The word “Architect” is even being used as a verb, “We are asking you to ‘Architect’ a solution for this issue” where the breadth of the issues and problems may only be in the scope or requirement to have been “developed”.
It is almost as if Software Developers and Software Engineers need a path created for them in order to grow or feel a sense of accomplishment through title change. In the past, a typical path of a Software Developer followed: Developer, Engineer, Senior, Lead, Team Leader, Project Manager, Manager, Director, VP, etc… But it is easily apparent that the needs for developers and engineers at all levels provide higher pay and higher rates that the roles of managers, directors, and VP’s. So the use of this new term “Architect” has come out to explicitly describe someone who has knowledge over a multitude of technologies and systems.
Today I heard of a new title, a “PHP Architect” and I nearly choked. Does this mean that you are a professional Zend, CodeIgniter, CakePHP, WordPress, Drupal, and Joomla developer? Or are you an Application Architect, who’s focus is purely on the detail organization within a single application, centered on component re-use, maintainability, and detail?
The term “Architect” should not be confused. If ever given the title, you should be adept and able to take computer science concepts and apply them to any and all languages. At this stage, we are beyond languages, we are beyond operating systems, we are abstract and knowledgeable of inter-working concepts. Architects are designers, creators, and maintainers of framework concepts, abstraction technologies, and focused on how they all operate together. “.NET Architect”, “Ruby Architect”, “[Language] Architect” is a direct conflict of what should considered the responsibility of that role.
I guess as the world more and more requires engineers and developers in IT, we need to attract them somehow. How can we clarify these lines?