Thursday, May 09, 2002

Architectures Redeux. I've been discussing architecture within the context of web services, which is but one facet of the topic. First, I want to get a pet peeve out of the way: architect is a noun, not a verb. You can be a software architect, but you don't architect software. This atrocious misuse of the English language was introduced by Steve Jobs many years ago, and has unfortunately become a permanent part of the IT lexicon.

What is the essence of architecture? One of the best descriptions of software architecture is provided by Bredemeyer Consulting's Software Architecture Page. Despite the use of the dreaded word, architecting, the definitions provided capture the essence. My personal view is to consider architecture in its traditional form, which is the development of a high level design - the big picture. That is what those folks who design buildings for a living do. However, there are some marked differences between the original architects and software architects, which can be summarized in these three comparisons:

  1. Those who design buildings are have stringent education requirements and are licensed. There are legal definitions as to who can proclaim themself to be an architect. In software anyone can claim that he or she is an architect - and they frequently do just that. No credentials other than a proclamation and, perhaps, some references that will support the claim that they actually functioned as a software architect.
  2. Architects who design buildings are held to legal and engineering standards to which their designs must comply. Software architects can do pretty much anything they can get away with without legal or professional oversight.
  3. Building architects blend design with engineering constraints. They use both creativity and a good deal of science and math. Software architects may or may not employ either - and they are not compelled to do so in order to claim to be an architect.
However, my objective is not to bemoan the misuse of English or the sorry state of software architecture, but to provide reference material that I hope will be used to get one thinking about the essence of software architecture and advance our profession through knowledge sharing. The resources that I am providing portray many different ways to approach architecture, and some are better than others. Moreover, some of the resources conflict with one another, but what they have in common is the fact that the approach is based on methodology and quantification. Each provides an opportunity to learn.

Resources that I recommend include:

Architectures also define the building materials and techniques needed to execute the design developed by the architect. This is true regardless of whether the architect is a licensed professional or a software architect. Both the building and the software architect need to understand the characteristics of the materials and techniques. To that end I am including miscellaneous references to materials and techniques that a software architect will find interesting:My next entry will depart from the architecture theme, and will focus on M-Commerce and related topics.

<< Home

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]