Thursday, November 29, 2012

How buildings learn... and automakers do not

Stewart Brand, in his book How Buildings Learn, analyzed buildings ... and identified ideas that are applicable to all sorts of systems. He noticed that buildings consisted of multiple layers, some which change easily and some of which are difficult to change. (For example: the furniture inside of a building is easy to change, the plumbing fixtures less so, and the locations of plumbing fixtures are even less easy to change.)

The idea of "layers of change" works for systems other than buildings. Just about any non-trivial system has layers of different change.

Automakers have, I think, failed to learn this lesson.

Recent models of automobiles now include wonderful electronic goodies such as navigation systems and interfaces to cell phones. But I fear that the automakers have designed these goodies in a low-change layer -- they expect their electronic additions to last the lifetime of the car.

The problem is that electronic gadgets are "cycled" on a more frequent basis than automobiles. The average life of a cell phone is something under two years; the average life of a car is quite a bit longer. (My automobile is twelve years old, and still in good shape. But my driving is less than the norm.)

The disparity of these two cycles means that a few years after the purchase of an automobile (yet well before the end of its useful life), the "goodies" will seem outdated. (Think about the usefulness of an iPhone 3 in today's world.)

I suspect few car owners will be happy with out-of-date electronics, especially if the (then new) phones cannot talk to their cars. I also suspect that automakers will upgrade systems only in exchange for large sums of money, and possibly not at all.

The lesson here applies to software. Most software systems exist in layers, some easy to change and others less so. Simply tacking on another layer is not enough. We must consider the technologies involved and our customers' desire for new generations of technology. Failing to do so will result in the equivalent of a modern-day automobile with outdated electronic gadgets, whatever that equivalent is in software. It also results in unhappy customers, or whatever that equivalent is in software systems.

No comments: