# String theory

I’ve recently noticed an important strategy in my programming. It’s something I’ve always done, but until recently I wasn’t conscious of it.

This strategy could be called “finding the simplest thing”. When I need to extend the functionality of one of my interactive software systems, I look for the absolutely simplest possible case.

The idea is that if I can initially get the simplest possible thing working, then I can add fancier things later on. Because if I were to instead start out by trying something more ambitious, I might end up spending needless hours debugging.

So if I’m extending something from two dimensions to three, or adding the ability to respond to a mouse events, I look for the absolute minimal way to do that. I won’t draw two lines if one will do. I won’t respond to mouse drags if I can get away with responding only to mouse clicks.

This strategy sort of reminds me of something I learned in school about how people used to build bridges. First they would fly a kite and wait for the wind to blow it across the river.

Once they had a string going from one side to the other, they would use that to pull across a heavier line. And then use that second line to draw across a still heavier line.

Eventually they would have a thick rope going across, strong enough to support the weight of people. And then they could begin in earnest to build the bridge itself.