Recognising the different types of bugs you may encounter

Not my invention, and not that new, but I’m surprised at how many developers haven’t come across these:

Heisenbug – a bug that seems to disappear or alter its behaviour when you attempt to study it. Named after Werner Heisenberg, the physicist who first asserted the observer effect of quantum mechanics, which states that the act of observing a system inevitably alters its state.

Bohrbug – by opposition, is a “good, solid bug”. Like the deterministic Bohr atom model, they do not change their behaviour and are relatively easily detected.

Mandelbug – named after Benoit Mandelbrot’s fractal, is a bug whose causes are so complex it defies repair, or makes its behaviour appear chaotic or even non-deterministic. It also refers to a bug that exhibits fractal behaviour by revealing more bugs (the deeper a developer goes into the code to fix it the more bugs they find).

Schrödinbug or schroedinbug – named after Erwin Schrödinger and his thought experiment, is a bug that manifests itself in running software after a programmer notices that the code should never have worked in the first place.

Hindenbug – named after the Hindenburg disaster, is a bug with catastrophic behaviour .

Higgs-bugson – named for the Higgs-boson particle, is a bug that is predicted to exist based upon other observed conditions (most commonly, vaguely related log entries and anecdotal user reports) but is difficult, if not impossible, to artificially reproduce in a development or test environment. May also be used to reference a bug that is obvious in the code (mathematically proven), but which cannot be seen in execution (yet difficult or impossible to actually find in existence).

Be First to Comment

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.