An all time favorite read: http://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf?

The best part I liked about it was this statement:

Software is not limited by physics, like buildings are. It is limited by imagination, by design, by organization. In short, it is limited by properties of people, not by properties of the world. “We have met the enemy, and he is us.”

This seems very true; I have heard many senior architects resembling software architecture with a Building Construction during their presentations, while I tend to agree on some of the aspects like creating a blue print before implementing the building but I do feel that building a software and constructing a building don’t make a fit analogy.

As martin mentions in his article, once you have designed a building it is very difficult to change the basement, on the other hand if you have layered your software well and applied the relevant design patterns you can still make shifts to your foundations without impacting the entire software stack!