22 April, 2012 — Menlo Park, CA

It can be hard to see things as they are. Perceptions embody implicit assumptions which, often, allow you to arrive efficiently at truth, and to parse the world at speed. But not always.

When you perceive, you ought to recognize what assumptions you’ve made, and what others you’re predisposed to making. Otherwise you can elide the details of reality. You might assume easy or pleasant abstractions.

Reality doesn’t care if you elide it. It just is. But make predictions on the basis of what isn’t, and you’re likely to suffer.

Suppose I see “a mother walking with her baby down the street.” Wrong. I’ve generalized from incomplete data. What I actually see is a middle-aged woman pushing a stroller. I don’t see the baby, and I couldn’t possibly see the blood-ties, supposing that a baby exists. Yet what I perceive is a mother.

In this particular situation, what is likely agrees with what I perceive. It’s a simple matter of probabilities. Most women walking down the street with strollers do have a baby in the stroller and are that baby’s mother. But while this may be true, my mind doesn’t go through that chain of reasoning.

Things don’t always work out so nicely.

For instance, tricky software bugs often arise from incorrect implicit assumptions. If you assume something and don’t think about it, then you don’t consider that it might have a role in what’s going wrong, and you certainly don’t fix it. So people who can debug software well are good at making implicit assumptions explicit. [1]

And if humans are capable of naive perceptions about something as logical as computer software, I suspect that we make more and worse mistakes in the broader context of life.

Perceive carefully.

1 Another reason to encourage coderacy.