My ex boss, Maurizio Cunico, has written an article on MSDN on the role of the architect (in Italian).
I agree with most of the points in the article but I think there is one aspect missing; teamwork. The article describes a "one man show" scenario where the Software Architect does everything. Being humble, as Maurizio mentions, also means realizing that you have limitations and have to actively seek input from the people you work with to produce the best possible solution for the client.
You sometimes have to be a Jack of all trades if you work on small projects but I don't think it is a good idea on complex projects. I have seen many examples in the past where the "Jack of all trades" architect produced brilliant architectures on paper that had major problems when deployed in the real world (scalability, security, load balancing, ...). Working side by side with the systems architect that has to deploy and mange the software is a must if you develop large/complex on line systems.
I agree that the architect does not necessarily have to code, but the architect should help the members of the team grow, not only take care of the architecture.
What do you think?
Feel free to drop a few cents in the
tip jar if this post saved you time and money