Sunday, November 13, 2005

You Can Only Think Outside The Box When You Know What Lies Outside That Box

Sometimes, the seemingly most logical solution is not the best. I can't think of a software-related example right now but listen to this:

I use a cordless mouse and recently the signal became too weak for it to work properly. My PC stands behind the door in the hallway, so I moved the receiver as much forward as its cables would allow (about a metre), and that helped. The big drawback to that solution was that the thing obstructed the door to the bathroom, and it would be only a matter of time before I would crush it.

So, I moved it half a metre backwards again. But that caused the reception problem to re-appear. The only other option, it seemed, was to change the angle of the thing, so that the radio signals might arrive more advantageously. I know some stuff about antennea and RF signals and I thought it was worth a try. Unfortunately, if didn't help much.

And now we arrive at the "thinking outside the box". The changing of the angle was already a little bit of TOTB, but the real TOTB was when I, in spite of the fact that the empirical facts supported the premisse that "further away equals worse signal", started to remember some more stuff about RF signals. One of the things I remembered was that they have a rather undesirable tendency to inject themselves into other wires. This is why the FDC requires shielding on just about every electronic applicance that might produce some RF (Radiofrequent) signals, so that it can't interfere with other applicances.

Behind my PC (and as far away from my desk as can be) is a bundle of cables that lead all the way to my desk. I thought that if I would place the mouse's receiver on top of that bundle, it would be in an advantageous position to pick up some of the RF energy absorbed by the cables. My theory was that the mouse would radiate some of its energy into the cables near my desk, that the cables would carry this signal to the coil behind the PC, and that putting the receiver inside that coil would allow the receiver to pick up enough signal.

This indeed worked. Instead of placing the transmitter a metre forward, I moved it quite a bit further away (and behind a wall as well) and it solved all problems perfectly. The device wasn't even visible any more.

Of course anyone could have arrived at the same result simply by "exhaustive search" (trial and error) but often a programmer doesn't try a certain thing because it simply doesn't occur to him. It's not that you have all the time in the world to try everything, usually you design something and then implement it.

My point is that in order to achieve true excellence (= solving the problems best), you have to think outside the box, and this cliché can only be fulfilled if one actually knows what's going on outside that box.