I tend to observe interesting trend, appearing one and then here and there - people overuse the words "architect" and "architecture" when they speak about software:
- every diagram is "an architecture blueprint"
- every design document is "an architecture overview"
- every analyst who creates a high-level design document is a "solution architect"
It looks like every word that starts with "arch-" makes the entity named more serious and professional ;) Noblesse oblige ;>
So, what does make an architect? When can someone call him an architect? What’s the difference between a design and system architecture, between a developer and an architect? What skills should architect possess? And, the most important - should we bother?
So, my two cents on that:
Architect is a developer. A lead, experienced developer. He earns his position because he has the respect of co-workers - and respect has to be earned, because no one can award you with that. First requirement for architect - he needs to be able to construct a proof of concept to prove his ideas. That’s the distinguisher.
Architects who don’t code are not architects, simple as that. And architecture is not about writing documents - it’s about creating working software. Shaping and forging it to meet the needs while remaining as agile (flexible) as possible.
One could say - do architects who design buildings do the masonry? Build walls? Put bricks? Of course they don’t, but software creation is so unique, that such parallelisms are rarely true (roles are not that corresponding - try to map a tester role …).