Emerging Architect Roles
A blog post on Microsoft's Developers Network (MSDN) caught my attention. I found it via InfoQ's article What is an Architect anyway?.
My own post about the topic was titled The architect role in Agile Development and appeared on my company's blog. In it I was saying that there is no need for an architect in an agile team, but it makes sense to have a coach available. Now the members of the Microsoft Architecture Strategy Team propose three different architect roles in their own post:
What is exactly software architecture? Do we really need it? Why have we only recently been discussing it? Is there suddenly a contagious fever about software architecture infecting those who claim to be architects? Who are they actually: gurus, just senior developers, or maybe smooth-talkers?
[...]
Emerging Architect Roles
The considerations of economical changes like globalization and technological achievements like the Internet’s impact on the digital economy, pressed for formalizing software architecture as a discipline.
Although there is not yet a definite agreement in the distinct roles, we can sketch three major personas:
These job descriptions, essentially that's what it is, sound like calling for another manager role. It awfully sounds like creating unchangeable rules and mandating platforms and technologies from a defined set of vendors. Let's look at these job descriptions in more detail.
Infrastructure Architect.
The proposal calls for a senior IT professional to evolve into an Infrastructure Architect. It doesn't mention a developer who can evolve into that role. So what is an "IT professional"? To me that sounds like someone from the corporate MIS department who has been installing and maintaining desktops, servers and networks with lots of help from the vendors. Those who work in MIS department are smart folks. But in my experience their view is limited to an experienced user's view. They usually don't have time to fully understand networking or operating systems concepts. They have to follow the manual and best practice articles. To me, given that my job is to develop a software, such a senior IT professional would be a great source of input to learn more about the technical difficulties the organization faced in the past. But I would not put such a person in a position to define implementation details for the developers. The risk is too high that in the end it will be a decision pro or contra a certain vendor's platform (e.g. Windows vs. Unix) and not something that can be considered architecture.
Instead it's the job of a developer - we are not talking about programmers who simply implement a specification - to be well versed in questions of security, reliability, manageability, transparency, and policy compliance.
Solutions Architect.
To me the design of applications is not something that a single person might be able to accomplish. Instead it's a process comprised of a dialog with the stakeholders to learn their business, their ideas, and their requirements in combination with a team of experienced developers creating software in iterations and actively proposing solutions. What the Microsoft team writes sounds more like someone who creates Product Requirements Documents, UML diagrams or another kind of formal instructions for the implementers.
Enterprise Architect.
In my opinion that Enterprise Architect simply should be the CTO of the company. A large organization needs someone providing oversight to all the different projects going on. Not to mandate certain technologies or to prefer a certain vendor, but instead to make sure everything that gets deployed can interoperate with each-other. This person should be able to leverage the specialized knowledge of technology consultants without following a single one blindly. His job is to avoid vendor lock-in and silos, but not to limit the use of anything upfront.
Re: Emerging Architect Roles
http://www.allthingsdistributed.com/2007/07/the_different_cto_roles.html
And I'd also suggest that there's at least some chance that having the CTO perform the enterprise architect role might be achievable in a small company but won't scale for a large company where a number of teams will be demanding oversight and advice simultaneously and repeatedly as their projects proceed.
Re: Emerging Architect Roles
With regards to your assertion that a CTO can act as the Enterprise Architect only in a small company let me point out that Werner Vogels mentioned in his post that the CTO directly supervises a small team of seasoned engineers. So I'm guessing that those as a group might take on that role as Enterprise Architect and provide the oversight for numerous projects.
Re: Emerging Architect Roles
So it could well be the group you mention.....
