Construction

There are so many ways that constructing software is like constructing a house. From a systems perspective they have a lot in common.

In both cases there are layers. The bottom layers are essential, yet essentially generic. You need a foundation, plumbing, electricity, proper management of heat and light.

At that level there are standards for everything, and if you deviate from those standards, you are going to run into trouble. Fortunately, at that basic level a lot of the rules have long ago been worked out by other people, so you don’t need to reinvent the wheel.

But as you go up from the lower layers to the upper layers, the design criteria change. You can experiment more, start to take risks, invent.

Now you are transitioning from the general to the more particular. You have an opportunity to make your individual statement.

I suspect that all systems of construction follow a similar pattern, whether in the field of songwriting, physics or philosophy. There are basic foundational rules that you need to observe, simply to have a space upon which to build.

After that, as you move up to the higher layers of design, you have the freedom to play. But first you have to make sure you have those basics in place. After all, it doesn’t matter how cool your house looks if it’s going to fall apart a week after somebody moves in.

One thought on “Construction”

  1. Currently remodeling a house. The choice explosion is a painful 1st world problem. Literally hundreds of drawer pulls, wall colors, faucet styles, tile patterns, countertops, door handles, etc. to choose from.

Leave a Reply

Your email address will not be published. Required fields are marked *