Thursday, November 11, 2010
I have a friend who is an architect (the kind that designs buildings instead of software). I was reminded recently of a conversation my husband and I had with him a while back that was basically about whether you could really be called an architect when you designed software. It didn't really make any sense to him, possibly in part because of the intangible nature of the end product.
The Architect's Hand by George L Smyth
I was reminded because of a sentence I read in a text book I'm reading called Interaction Design: Beyond Human-Computer Interaction. It was comparing architects with engineers, pointing out that architects care more about the user experience (what layouts of building are conducive to certain activities, etc), while engineers are concerned with the technical details (like calculations and numbers). While I'm sure this isn't the whole picture, it does give a bit of basis for arguing why software architects can be called architects.
Software architects are generally responsible for the overall design of code. They care about the user experience of software developers (who in this comparison may be seen as the engineers) for the end goal of making it easier for them to create high quality software. They do this by considering design patterns, enforcing coding standards, and making high-level decisions. In a sense, they create a layout of the software architecture in much the same way that architects do for buildings. Even though the 'user' in the considered user experience isn't as much an end user as a regular architect would be designing for, I still think the philosophies of the two roles align.
What do you think? Are there more similarities, or do you see the two types of architect being pretty distinct?