Most of the experts are beginning to converge on the idea of software as Architecture. At one time it was mathematics, then engineering, now architecture. I am fond of this idea. The goal of architecture, like that of software, is to make a product that suits a given purpose within given constraints (building codes, cost, etc...). There is also some artistic aspects of both: desiging a user interface is similar to designing a house (which is essentially a user interface). For the same amount of money and functionality you can get completely different structures, some usable, some not. In addition, you can use cheap labor to build the house or more expensive labor. If you opt for the cheaper labor, then you are likely to have quality problems down the road.
Architecture is essentially about the creative genius of a person. A Frank Lloyd Wright original is infinitely better than a prefabricated construct, though both may be made with the same material. It is the creativity and imagination of the builder that makes the product amazing. Also like architecture, creation is more about patterns than components. Often, there doesn't exist a component to do what you want; therefore, you have to build it using patterns and principles to create the best component possible.
There are a lot of similarities between architecture and software development, more so than engineering or mathematics. Now we just have to look for similarities between architects and computer programmers.
A Lost Voice
5 hours ago