Defining Architect roles
A few weeks ago, I read a serverside post
that referenced marty andrews' post about defining software architecture roles
. These posts happened just in time, as in the past two weeks I've been asked this question over and over.
My employer has been trying to define what exactly an architect is so they can create a career path for other engineers and architects. Currently we have:
- Associate Architect - junior guy, works on components on a system. Journeyman architect for a better name.
- Architect - Able to design components of a system with supervision by senior architect. Knows at least one language or methodology.
- Senior Architect - Can design component systems and all technical aspects of a particular product or application. Usually was a master of a particular language and really knows DBs, XML, services, UML, networking. This position maps to Andrews' "System Architect".
- Lead Architect - Can design multiple products and systems, including how they interact with each other. Designs boundaries and interaction. These guys know all about database modeling, performance modeling, message queues, more than a senior architect. This position maps partially to Andrews' "Solution Architect".
- Principal Architect - Works with multiple systems, company technical direction, customer/ industry facing. Can communicate with business units what architecture is and how it benefits, etc etc. Some more soft skills, but really knows everything about designing systems, how they interact and what the technical reasons behind enterprise decisions are (i.e. "Why did we choose MySQL over Oracle?" "What did you use Ruby instead of Microsoft?") and knows current and upcoming industry trends. This position maps partially to Andrews' "Enterprise Architect".
This is what the titles are supposed to mean, but in my company (and perhaps yours) they really just mean how much you get paid. So they could just as well be "Architect 0" through "Architect 4".
But there does seem to be a large set of high paid consultants out there who practice "Enterprise Architecture". Sort of big picture guys who are able to go into non-tech huge companies and help with the 25k feet picture. This seems like the only real definition that really fits the term "architect" as far as technical systems are concerned.