So I work in a company with a couple of other architects. And these architects grew up designing j2ee apps using ejbs, servlets, jms, all that good stuff that j2ee makes you know. My company has lots of developers who grew up writing c and cobol and all those things where you spent lots of time on the program, not the architecture.
So, naturally this leads to some confusions. For example, when it comes time to design a process to send binary data down to the browser to display (like a pdf or word doc or something), instead of designing something nice like a binary downloader and displayer, someone writes a program that hard codes word documents down to the browser by writing the word doc to the server's file system and them streaming and opened file down to the browser. So it goes like this: 1) read data from db 2) write data into word doc on file system 3) open word doc 4) stream down to the browser. And once an architect notices this code and the possible negative side affects it may have, the code is already in production.
So, the whole point is that architects need to be checked by developers to make sure our designs don't suck and developers need to be checked by architects to make sure their code won't cause needless rework.
Also, something funny. I saw a resume (or maybe it was a job posting) that used the word "Architected" as in "Francke architected an enterprise level branding system." Is "design" a bad word or something? Will people get mixed up and think you're a photoshop jockey if you say "Francke designed an enterprise level branding system."?
Software development needs a new word for the architect role. I'm tired of people asking if I like Frank Lloyd Wright.