Billy Hollis made an interesting point in his interview on .NET Rocks. He argues that “structural engineer” is a better analogy than “architect” for the role of “software architects.”
Structural engineers make sure a building can withstand the stresses it will be subjected to. They do not design buildings, though they work closely with the architects who do the design. Hollis says that most software projects do not have an “architect” who is responsible for the external design of the project. Instead they have structural engineers who focus on infrastructure. This is a very important role, but calling these folks “architects” may obscure the lack of someone playing a role analogous to the architect of a construction project.