A schroedinbug (also spelled schrödinbug) is an unusual software bug that only manifests once a programmer or developer notices it. It is one of the trickiest software bugs to identify simply because of its inherent nature—that is, the “bug” remains latent and does not harm or damage software (it’s typical for software to run smoothly for years), but once a person reads the software code, the program will no longer function.
It is tricky because, logically speaking, the bug should not have caused the program to run in the first place. Yet, it will only manifest once a programmer discovers it. Once it has been noticed, the program will malfunction until the bug has been fixed.
💻 Secure your remote and hybrid endpoints with robust, cross-OS patch management by NinjaOne.
Why is it called schroedinbug?
The name was inspired by the Schrödinger cat thought experiment—a popular quantum superposition in quantum mechanics. Erwin Schrödinger, an Austrian physicist, proposed the idea that a cat can simultaneously be dead and alive in a box.
It challenged the Copenhagen interpretation of quantum mechanics, which remains one of the most influential frameworks in understanding this physics theory. Essentially, the Copenhagen interpretation is built on several foundational principles, not least of which is the wave-particle duality. Here, physicists opined that entities can behave both as particles and waves depending on the experimental setup. It assumes that quantum particles only have values of observables (or measurable data such as position or momentum) once an observation is made. As such, entities exist in a range of potentiality, or what is called a “superposition”.
Schrödinger proposed a thought experiment to question this interpretation. We won’t get into the specifics of this in this article, but we recommend reading about the Schrödinger Cat experiment in this Sciencing article.
What is important to consider, however, is how this thought experiment influenced computer programming and the existence of various software bugs.
What is a schroedinbug?
In the realm of computer programming, schroedinbug typically follows this pattern.
- The system or application works perfectly, often for years.
- Then, an unrelated and often minor error is reported, or the programmer decides to randomly check the source code.
- The developer investigates the error, reads the source code, and discovers that the code is flawed and should not have allowed the system or application to work in the first place.
This, naturally, leads to heated arguments among software engineers. On one hand, a code that could never work, could never work. If it did or does work, then it means the code is correct. On the other hand, schroedinbugs are still reported and experienced, even to this day.
So, how does a schroedinbug even exist?
There are some theories to consider.
The error code was for a non-major issue
Some software developers believe that sometimes a schroedinbug is reported because a programmer or developer does not fully understand the source code. In this case, the error code is found in a non-major feature or function that is not regularly used. An external condition is altered (for example, a new update) and inadvertently causes the code to break.
The developer then looks at the source code, and, needing more time to trace every scenario or dependency, states that the software could never have worked and simply rewrites it.
The software never worked, and no one noticed
This relates to the first argument. In this instance, someone new looks at a source code and notices an error that no one has yet discovered. Older developers would look at it and say it was “impossible” because they have been using it for years. But the truth is that they never noticed it because it was irrelevant, or if they did, they didn’t feel the need to fix it right away until someone else discovered it.
Thus, the developers are right in saying the source code could never work because it never did.
Either way, schroedinbugs are contentious because they assume a source code could be a Schrödinger cat; which engineers argue could never happen. It a code does not work, it does not and will never work.
Reduce security vulnerabilities by up to 75% with NinjaOne’s #1 patch management tool, according to G2.
Prevent schroedinbug in your IT network
Whether schroedinbugs exist or not, it is important to protect your IT environment with a robust and automated patch management system. NinjaOne patch management helps you automatically identify, evaluate, and deploy patches across Windows, Mac, Linux OSs, and third-party apps.
If you’re ready, request a free quote, sign up for a 14-day free trial, or watch a demo.