I was asked, "As a coder, what is the most insidious bug you have ever come across, and how did you find it?"
It’s really hard to pick one error out of hundreds I’ve encountered in my long career, but some of the toughest have been:
- compiler errors, where the compiler has created object code incorrectly. We usually found these by hacking around, changing the source code to express the program in different ways, or by examining the object code the compiler had produced.
- hardware errors, both from the failure of a component and an actual design error in the hardware. Such errors are not as frequent today as they were in the old days of vacuum tubes (or relays), but in a way that infrequency makes them all the more difficult when they do occur, because we have so little experience with them.
- requirements errors, where the program has actually solved the wrong problem. These errors can usually be found only after users have been in contact with the code for some time, and only when there is some communication channel between the users and the programmers.
- So, what were your most insidious errors?
You can read more about errors and their consequences in
Errors: Bugs, Boo-Boos, and Blunders (https://leanpub.com/errors)