Building a software program is similar to building a house. It takes several teams or individuals with very specific roles and functions to complete an entire program. In some cases, their work may overlap and without at least a basic understanding of the roles and functions of other teams, disaster can sometimes occur. Two of the teams or individuals that make significant contributions to the final product are a designer and an architect. Here is an outline of the different roles of an architect and a designer.
Just like the name implies, a software architect designs the basic framework or structure of the software. Much like a regular architect, a software architect needs to take the ultimate purpose of the software into account in order to create the appropriate structure to support it. Banking or accounting software, for instance, will need to have much stronger security features built deep into the framework than educational or gaming software. Software that will need to accommodate thousands of users accessing it at once will also have different structural needs than software that may only ever have a maximum of a few hundred people needing to access it at the same time.
Just like in the world of construction, design picks up where architecture leaves off. The designer takes the basic structure built by the architect and adds on all the features the user will actually see. It is important, however, for designers to have some basic understanding of architecture because there will always be elements an architect adds to support the overall use of the software that will be in conflict with the needs of a designer. In physical terms, you might say an architect may need to put a retaining wall right in a place that creates something of an eyesore for a designer. The designer can’t just simply remove the support or move it to a place that better suits their design. In architectural terms, certain elements need to be placed a certain way in order to create stability for the entire structure. If you move or remove a necessary element, it weakens the entire structure. In some cases, an architect and designer may be able to work together to come up with an alternative solution that meets both of their needs.