...as opposed to what? "Junior Software Architect"? "Software-Architect-in-training"? "Software Architect Apprentice"? "Wanna-be-a-Software-Architect-When-I-Grow-Up"? All this is to say nothing of the very blurry notion of the purpose, duties, and capabilities of a software architect.

At minimum, I would think most would agree that a software architect, if there really is such a beast, has significant experience in the field of software development. In this sense, we software developers with perhaps less (in volume or quality) experience are all "architects-in-training".

We might also say that a software architect is familiar with the functional and non-functional capabilities ("-ilities") of lots of software tools, platforms, languages, etc., and how best to apply them in a given problem space. Are these things that only certain specially skilled software developers can do, or is it just a matter of experience?

Perhaps a software architect has experience in requirements gathering and business process re-engineering, and keen communication skills so as to be able to articulate a coherent vision of the business's operations, and how information technology might be best applied to create new efficiencies, revenue streams, and in general a Better Life for the company's employees. If so, a software architect seems like a different beast from just your run-of-the-mill developer. Can you get there without having developed software? If not, when/how does a software developer "cross the bridge" into architecture-land?

No one seems to be able to lay down definitively a software architect's duties and capabilities, but one thing's for sure: there's a fair amount of mystique and prestige attached to this nebulous title. "I'm not just a programmer, I'm an architect." "Oooh," the business folks gasp.

Maybe we're handcuffed by the "building" metaphor. Perhaps programmers aren't nail-drivers. How often do nail-drivers become plan-drawers become plan-thinker-uppers?

I like Fowler's discussion of what a software architect is. Being agile-minded, I like to think of a software architect as an experienced developer who functions as coach/mentor to developers on the team, and encourages/enables those developers to make good decisions for the betterment of the software being grown. I dislike the term "architect", though...I prefer "coach". And definitely not the run-laps-until-you-collapse kind.