Debugging: The Quantum Approach

Even for one individual, debugging and testing a program and its system varies from being a methodical exercise through to an art form bordering on religious experience with flashes of divine or supernatural guidance. Sometimes just duplicating a problem requires a type of faith (as one prays that the user and the developer can stumble on the same set of circumstances and same sequence of events to see the problem again so that it can then be worked on) that is more typically attributed to lottery players. At least one can assume an understanding of the hardware and software components of the system, and that the current problem and any future problem will be restricted to these components.

Well, maybe.

Quantum mechanics is an area of physics few of us know anything about, with the possible exception of Einstein's negative comment, "God does not play dice with the universe." Yet there are certain aspects about the field that may become causes for concern in reverse proportion to the size of our computers' circuits.

An article in the April 16, 1990 edition of Time magazine describes an interesting experiment that proves the power of quantum mechanics. The purpose of the experiment is to fire photons in opposite directions, change one photon's polarization at some point, and determine what happens.

The result: changing one photon's polarization also changes the polarization of the other photon sent in the opposite direction!

For those of us more comfortable with our day-to-day, solidly Newtonian physics, experiences, such a result can be as disturbing as it is mind-boggling. That changing something, even an elementary particle, will instantaneously alter the existence of something else originally "connected" but now separated, even by light years, is a thought too horrible to think about from an information processing perspective. There are already enough ordeals when a system's bug fix causes a new bug in the same system. Now there is the possibility that our system's bugs might be caused by someone else messing around with "our" elementary particles. (Even if she had had a morbid fear of insects, Grace Hopper's experience with the first "bug" is less terrifying than what we might be put through.)

It is no wonder systems people never believe users: the users file a legitimate problem report, but when the I.S. department tries to duplicate the problem, some facetious little hacker somewhere puts the right quantum "twist" on things so the bug disappears; then, after the I.S. department is finished questioning the sanity and/or substance abuse of the users, the hacker does a quantum "twist" the other way until the bug is back.

The last two decades have seen great progress in software engineering. We take pride in systems that not only display a synergism, but also demonstrate the capabilities and accuracy inherent in linking and building upon smaller, previously-proven components. And, as a profession, we certainly frown upon some of the old development, testing, and implementation approaches of "take a chance".

Now, as our systems near the limits where quantum mechanics dominates, we may find that bugs fixed cause problems somewhere (somewhen?) else; and that the old "take a chance" advocates certainly had the right uncertain approach all along.

Vernon R.J. Schmid


Your comments, suggestions, questions, or concerns would be very much appreciated. Please direct them to:

Copyright ©1990, 1997 Vernon R.J. Schmid. All rights reserved.
Web Page Created: 1997-11-11. Last Updated: 2005-01-28.