The price of complexity


My house was haunted. One of the lights would randomly go on or off and random times without anybody fiddling the switch.

The previous owner of our house had installed fancy dimmer light switches. On a whim, we replaced one of the fancy switches with a simple on/off switch.  As we took the old fancy switch out, we noticed that it had capacitors, a circuit board, resistors, even a microchip! That’s a lot of different things to break down.

The new simple switch worked great, and the associated light no longer randomly toggles. So I conclude the fancy light switch was the problem.

Furthermore, the dimmer switches were more complicated to use because they had some fancy pressure touch thing: a quick fast press would toggle the light; a soft press would dim the light. It took us a while to get used to them.

When I was at Home Depot, the fancy switches were $40; whereas the simple on/off switches were ~$3.  The old simple switches throughout our house are still working; and we never really needed the dimming features for the fancy switches.

So the fancy switches were more expensive, harder to use, and haunted. Overall, not an ideal tradeoff for our needs. We’ll stick with the simple on/off switches.

 

I think the same things applies to software design. You can build complicated software with lots of features, but that also means more places where it could break down. If a simple solution does the trick, it may not only be cheaper to build, but easier to use and cheaper to maintain in the long run.


Comments (4)

  1. HawVer says:

    Nice comparisation. :) But sometimes I like the dimmed light because it looks romantic..

  2. Tim Blizard says:

    I consider it an axiom that the more complex something is then the more fragile it becomes.

    Consider the modern car. The basic engine is still the same internal-combustion design from 100 years ago but they break more often because of failures in the (more complex) control components.

  3. "I think the same things applies to software design. You can build complicated software with lots of features, but that also means more places where it could break down. If a simple solution does the trick, it may not only be cheaper to build, but easier to use and cheaper to maintain in the long run."

    Not wishing to be contentious but some would say that you have just described the difference between Windows and Unix/Linux.

    I will leave it to others to say which is which.

    Nick

  4. David says:

    As near as I can tell, Linux means that to switch on Light version 0.0217 I have to run my own electrical wiring, although people will come and do it for me in exchange for beer. Then I have to generate my own power, before finally discovering my lamps are not compatible with Light.