Monday, May 18, 2009

I have a doubt

There are the things you know, there are the things you don't know, and there are the things you don't know that you don't know them. Well, that you know by know. There are still other things, however, namely those things you know about -- and are wrong.

Let's restrict the discussion of this predicament to programming. I've been learning some new frameworks and tools over the past months. In one of them I noticed a missing feature that would make it much easier to achieve my intention. Open source to the rescue, I just patched it to my liking and went on. Later, in a discussion with more experienced people, I complained about this missing feature. To my embarrassment I found out that not only was the behavior I had been asking for already supported, but that the change I'd made was ineffectual and never executed. Had I not seen with my own eyes that this framework was doing the wrong thing without my help? Yes, indeed, but somehow the details were different and that special case didn't apply anymore.

That's a harmless example, of course, almost benign in dealing the small shock to shake ones certainty. But isn't certainty a good thing? It sure feels good -- until you find out that you have been wrong. The latter, the worse. "I thought we were measuring distances in imperial units" -- Kaboom, you may just hit Mars. "Oh, weeks start on mondays in your country? How weird, isn't saturday the last day of the week anymore?". You can probably add countless other similar examples, after the fact that is.

But how do we avoid falling into the certainty trap, to know what isn't so, to begin with? Constant vigilance is not the answer, I'm afraid. Don't become the central scrutinizer, or you won't get anything done beyond being skeptical of everything. A first step, I suggest, is dragging certainty out of the cozy corner. Yes, I have already admitted that it feels good, but you will have noticed the price tag by now. Whenever you find yourself thinking or saying "I'm certain that ...", "I know that ...", pinch yourself and make a note to investigate if your certainty is well founded. As a second step, get into a habit of friendly caution, every now and then utter to yourself I have a doubt.