Distance Debugging Logo

Most of us are introduced to the scientific method early on. We learn about making hypotheses, collecting data, and analyzing results. Unfortunately, we are rarely given an opportunity to study the second part of science, which is establishing a theoretical basis for the result that meshes with current understanding. One simple example is the classic "ESP" experiment. Let's say that I could demonstrate successful "mind reading" to a level that is incredibly statistically unlikely, and I could do so repeatably. In order for it to become "scientific", that's simply not sufficient.  I would need to explain the following:

  1. In what form is the information being transmitted from the other person to me?
  2. How might that be observable through other means?
  3. What about me is different such that I have this capability while others do not?

Otherwise, I'm making an even bolder claim: not only can I read minds, but I also rely on some method of data transmission that is undetectable or unknown to science.  To avoid that territory, we certainly we could invent answers to these questions that made scientific sense. Perhaps I am especially attuned to the magnetic fields created by neuron firings, and I can decode that information. Maybe I have some sort of genetic anomaly that amplified a natural capability, and so on. Many incredibly bizarre and counterintuitive findings have proven to be totally explainable (or have invalided previously established scientific concepts) once the theoretical basis is established. The need to link new findings in with established scientific precedent
strikes many people as a kind of dampening effect on research that
challenges the status quo. In some sense, that's true, but it's really
about burden of proof. If you find something that is significantly at
odds with long-standing research with a significant experimental basis,
you better have both a good explanation, and triple-checked your work.

The problem isn't that people don't create good theoretical bases for their experiments, it's that they don't  consider them enough in the first place. I remember a class in graduate school where the professor recounted the "surprising" finding that deaf children acquire sign language in the same way (progressing from babbling of word elements through individual words through sentences and so on) and at the same rate that hearing children learn spoken language. I immediately thought: "Why is that surprising?" Since we have such a wide basis of theory and experimental knowledge about language and the brain's innate capability to acquire it, wouldn't we be a lot more surprised if deaf children were somehow stunted in their language development? That would be a very interesting finding, suggesting that humans are predisposed to spoken language specifically, which would fly in the face of many other theories, such as the fact that it's generally believed sign language predated spoken language. A finding that spoken language has since become favored would need it's own theoretical basis.

What does this have to do with debugging? As I have mentioned in this space many times before, you have to have a theory when working, and that theory better be plausible, ahd it should hopefully be probable. However, on the data collection side of things, those same rules must apply. When lacking a solid theory, we often being running test cases and other perturbations of the system to see if anything unusual turns up. Frequently though, those experiments break down into two outcomes: one that is trivial in that it fails to challenge our current understanding, and the other that is wildly at odds with our current understanding. To avoid these kinds of polarizing tests, it's good practice to look at the expected possible outcomes and say "If the test fails in the expected way, what does that mean? If the test succeeds, what does that mean?". Ideally, both should tell you something interesting, although that's not always possible. Most importantly, if your test does give you back a surprising result, start from the assumption that your test is wrong. You will save a lot of heartache by throwing out bad tests instead of becoming a true believer in a bizarre theory with one measly test case to support it.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
We hate to do this, but to comment, you'll need to prove you aren't a spambot by answering this question: