Believe Me, You’re Not Architecting

So I said yesterday that I’m talking about architecture, not architects. However, today I am going to discuss the word architect and the dramatic misuse of the word I see pretty regularly. Or at least, I see now because Paul Preiss of IASA mentioned it when we were hanging out at TechEd.

“Architect” is a noun, not a verb.

Usually, when I hear the term “architect” used as a verb, it’s being used as a synonym for design. In fact, the term “architecture” is also often used as a synonym for design. For example, Arnon wrote this:

Architecture is design (but not all design is architecture)
[Arnon Rotem-Gal-Oz, What’s “Software Architecture”?]

Like Fowler’s description I talked about on Monday, I don’t like this one much either. Architecture isn’t just “good design” which is what Arnon’s description makes it sound like. This begins to get into the title inflation that Alan Cooper wrote about a few years ago. Speaking of Alan, here’s his definition of architect.

The panoply of software construction includes three vital roles: the programmer, the engineer, and the architect. The architect is responsible for determining who the user is, what he or she is trying to accomplish, and what behavior the software must exhibit to satisfy these human goals. The engineer’s responsibilities are comparable but focused on technology. A good engineer can and should ignore human issues, confident that the architect will cover the human side.

That definition of architecture (i.e. what Alan’s idea of an architect does) dovetails pretty nicely with mine. The architect and architecture is the link between the users (i.e. the business) and the software (i.e. IT). The only thing I would change is that as we get deeper into service orientation, interop and connected systems we have lots of process that don’t have direct user involvement. So the “human goals” Alan mentions may not be end user goals so much as business / organization goals. Either way, they certainly aren’t IT goals.

As Dave Welsh said and my dad pointed out in my comments, Business is from Mars, IT is from Venus. But that doesn’t mean they can’t get together. In fact, they have to get together. You show me a system with no business drivers or impact and I’ll show you a failed architecture.

Comments:

I like your definition, however, I would also probably constraint it (imho) to say that the architect is just *one* possible link between users and the software, but certainly not the only one. Maybe one focusing on certain parts of the interaction? I don't know... I sometimes think of the architect as the one that cares about the things other members of the project would like to pretend don't exist :)
Thank you, thank you, thank you... I agree that title inflation is probably at the root of the misuse of "architect" as a verb. It just sounds bad. Based on Larry O's post a few weeks back about "ask as a noun", I blogged the "architect as verb" pet peeve. http://jeff.donnici.com/archive/2005/08/04/392.aspx
I personally prefer the term Architect to be used more like a 'role' than a 'job'. In some (surprisingly very rare) cases it *may* be possible that what you are doing is so very complex that one person takes on that remit as their single and dedicated 'role'. Even then though, due to title inflation, they tend to often make the mistake of not participating in the team with other useful role slices; and then flounder in an alternative reality to the one that actually ships working stuff. This is actually odd, as a developer's 'test' their code, even with a dedicated test engineer around, but that doesn't stop them being called a 'developer'; just as TE's do develop lots of code. Architects (as a job title) smooze, spec, design, code, test, juggle and can sweep the floor with a party trick involving a broom - it's just an awkward name given to people with a wide remit and depth of experience, and is probably more of a memed organizational positioning term rather than a concrete job description, i.e. L61. Now, if it is all about positioning and seniority levels then I propose just delisting the word 'architect', call us all 'developers' and then find a suitably horrible word set for people with less experience. About 500 years ago we had 'Serf, Lord, Baron, King' - worth a go again? Would make a great org chart? ;-) - David (Serf)
I just reread your post (I am writing another post and thought I read here something related) and I noticed that you mis-understood my intention when I said "Architecture is design (but not all design is architecture)" I didn't mean that architecture is just "good design". I meant that it is a type of design (which has to do with top-level / global issues relating to a project/solution/enterprise whereas design (which is also a type of design...) has to do more with local problems Arnon