Architecture: Inspiration


The position “software architect” did not exist in the 70s. Perhaps because no one cared about software architecture; everybody wrote software as best as they could. Perhaps because calling yourself an “architect” without a license is illegal in some states (California, Australia).

But it was possible to meet a real architects. Christopher Alexander is one of them. The man is unique. He’s built hundreds of buildings and also trained an entire generation of IT specialists. Software design patterns and agile development methodologies emerged from his ideas.

In his The Timeless Way of Building (1979) there were two messages that were unusual for that time (today they are understandable and familiar):

  1. If you are building a house to last, you need to use good patterns and avoid bad ones. For example, a properly designed house should have a “sunny place” (this is the pattern). If there is no sunny place, it will be sad. A sunny place can be created using various tools such as high windows and turning the house relative to the cardinal directions. A sunny place goes well with wide window sills on which you can sit. In general, Alexander identified and described the main building design patterns that an architect should know about. If you want to know what a staircase or the main entrance of a building should look like, I recommend it.

  2. If you are building a house to last, you need to fit it into the surrounding nature. Make sure that the house becomes a logical continuation of its surroundings. This idea is not new; it has been floating around in the minds of architects since the 1920s. In the picture below there is an example called Fallingwater. One might say, the ideal of architecture.


Alexander’s work was one of the few sources of inspiration for early computer scientists. The two messages indicated above were deeply swirled in the whirlpool of time and they emerged only in the year 2000. We will return to them later.

The only thing that wasn’t pulled into the whirlpool of time is that it makes sense to treat software development like house building. And so it went on for several decades, until we decided to properly define the term “software architecture”. I’m not saying it’s bad to build software at home. Sometimes this approach to development works perfectly, but more often it doesn’t.

(The next article is about interesting features of house building…)