Roles of Architects
Ted Neward's recent blog post provide significant insight into what it means to be an architect. Come to think of it, it's quite amazing that we all often talk about IT or Software architect without having mutual agreement on what it means to be an architect. Lately I have also seen 'Solution Architect', 'Infrastructure Architect', 'Service Architect', and more. Ted's answer on roles and responsibilities of architects compels me to re-think the entire concept over again.
So, what does an architect do?
For some companies I've worked for, the "architect" was as you describe yourself, someone whose hands were dirty with code, acting as technical lead, developer, sometimes-project-manager, and always focused on customer/business value as well as technical details. At other places, the architect (or "architect team") was a group of developers who had to be promoted (usually due to longevity) with no clear promotion path available to them other than management. This "architect team" then lays down "corporate standards", usually based on "industry standards", with little to no feedback as to the applicability of their standards to the problems faced by the developers underneath them.
What relevance do architects have today?
Well, this is a dangerous question, in that you're asking it of one who considers himself an architect and technologist, so take this with the usual grain of salt. Are we just overpaid out-of-touch developers? God, I hope not. Fowler talks about architecture being irrelevant in an agile project, but I disagree with that notion pretty fundamentally: an architect is the captain of the ship, making the decisions that cross multiple areas of concern (navigation, engineering, and so on), taking final responsibility for the overall health of the ship and its crew (project and its members), able to step into any station to perform those duties as the need arises (write code for any part of the project should they lose a member). He has to be familiar with the problem domain, the technology involved, and keep an eye out on new technologies that might make the project easier or answer new customers' feature requests.
What do you think? What would be your definition of an 'architect' ?
These excerpts are examples. Check out full blog post here.
Note: In this context, I mean 'architect' in terms of IT-related (solution, architecture, application, etc.) architecture role.
