Why software has nothing in common with Schrodinger’s cat

Metaphors are great, they help us learn something new by linking with prior knowledge. I am a big fan of analogies myself. Driving metaphor, for instance, helped me a lot in figuring out extreme programming approach. Still one has to be aware of overextending metaphors when picking analogies. As Yossi Kreinin mentioned in post on coding standards, one shouldn’t outreach metaphors in areas where he is not minimally competent.

Schrodinger explained that in the moment before we look inside the box to discover the outcome, the cat is both alive and dead. There is no objectively measurable resolution to the experiment… yet. The system exists in both states. Once we peek (or by any other means determine the fate of the kitty), the probability wave collapses.

You see, in the moment we release software, before users* see it, the system exhibits the same properties as Schrodinger’s feline.

How often do you stumble upon cats that are “both alive and dead”? I dare to say, never. Maybe, Austrian cats were odd 80 years ago? Like, weird zombie cats. It can be revealed even from popular publications that Schrodinger actually proposed a paradox, ridiculous case. In NY Times article we read:

What’s often lost in the retelling is that Schrodinger didn’t believe the story for a minute. He was subtly ridiculing some of his mystical colleagues who liked to proclaim that conscious observers somehow conjure the real world into existence.

The Austrian physicist Erwin Schrodinger, one of the founders of quantum mechanics, thought of a paradox to show that quantum mechanics doesn’t apply to larger, tangible things. … Applying the rules of quantum mechanics to this system would mean that the cat is neither alive nor dead until a human observer actually looks in the chamber. Schrodinger argued that this was nonsense and merely an example of applying quantum mechanics to situations in which it doesn’t apply.

Probabilities occur all the time in science, because we almost never know everything we need to make a completely accurate prediction. For example, if you want to make a trip of a hundred miles, you can not know ahead of time exactly how long it will take. You might run into a traffic jam. You can only give an estimated time. In quantum mechanics probabilities are different. They are not considered to result from our limited understanding of the universe, but to be fundamental. Of course Einstein thought this was mistaken, but most physicists do not agree with him.

You can check Schrodinger’s paper. It’s easy to get a copy of English version of his work.

Now, to software. I agree when Elisabeth says that

There is some probability that we have done well and our users will be delighted. There is another possibility: we may have missed the mark and released something that they hate.

The problem is that she connects software with quantum mechanics in a certain way. Such link implies that non-deterministic nature is fundamental for software. We can’t abate it in any way. Our knowledge can’t bend chances to our win.

Assume, as Elisabeth suggests, that software has same features as Schrodinger’s cat. Forget for a moment that there are no blurred zombie cats. Now it doesn’t matter how often you run unit tests. It doesn’t matter how often you release builds. It doesn’t matter how often builds are deployed. Probability of failure is the same for each release. Know your users better? Forget it, it doesn’t help. Know your customer’s business better? Forget it, it doesn’t help. Learn from your past fails? Forget it, it doesn’t help. Learn from your peers? Forget it, it doesn’t help. You get the idea. With these I can’t agree.

O.K., I know that Elisabeth doesn’t mean all this. Her choice of analogy does though. Metaphors are mighty tool. Know your tools.

Post navigation

3 thoughts on “Why software has nothing in common with Schrodinger’s cat”

Ilya, I think you completely missed Elisabeth’s point. The point isn’t that software is non-deterministic, just that, until you release it (open the box, in the analogy), you have no idea whether it achieve’s what you hope (works correctly, satisfies user needs, etc.).

You wrote “(t)he point isn’t that software is non-deterministic”. Well, with this I agree. And why use non-deterministic metaphor then? Discrepancy between nature of software development and the metaphor is what I tried to point out.

With your second point, “until you release it… you have no idea whether it achieves what you hope”, I ain’t that sure. Suppose we’re to bet on the results of Canada vs. Brazil football match. While we don’t know the exact result until “the box is open”, it is reasonable to expect Canada to be spectacularly defeated (i.e. Brazil team ultimately achieves what they hope for).

“While we don’t know the exact result until “the box is open”, it is reasonable to expect Canada to be spectacularly defeated”.

well, the above statement seemed to be in contradiction with the statement below, which is from that 6th grader Schrodinger’s cat:

“In quantum mechanics probabilities are different. They are not considered to result from our limited understanding of the universe, but to be fundamental.”

Which means, may be its our ‘limited understanding of the universe’ that is driving us towards the ‘reasonable’ expectation of Brazil’s win, which in fact, may not be the case with the way in ‘probability of quantum mechanics’.

I agree that its totally reasonable to have an expectation about delivering a stunning product but end of the day, who knows, we may end up delivering an ‘iphone'(cat is alive) or ‘Apple Maps'(cat is dead)!

This is what she was mentioning about, a ‘total’ uncertainty, speculation and probability wave mounted up to the release date of product, only to find the the poor cat(Apple maps) is ‘dead'(a total disaster) in the end!

Nothing against Apple but that just popped up in my mind as a perfect example.