Hacker News new | ask | show | jobs
by Cococabasa 5567 days ago
No, all bugs are not human error.

Some bugs are caused because the programmer cannot see into the future and determine that something they programmed will be used in a manner that was not intended (using a Hammer function instead of the new Screwdriver function).

So the bug is in the code that the programmer wrote years ago. It is not suitable for today and WOULD crash and create a bug if used that way.

But is there an error somewhere? No, the programmer just cannot see into the future.

2 comments

Ah, but that is human error - the error of the person who used a program in a manner for which it was not intended! They erred in not understanding that the program was written years ago and not intended for that use. Of course, then it is not the error of the human who wrote the program.

This, however, is the reason why the phrase "human error" is mainly applied to simple, 'random' mistakes such as typos, fat-fingering a button, or misfiling a paper - errors that anyone can make, simply by being a forgetful human - rather than the literal meaning of "any error committed by a human". Stretched to cover every mistake made by a homo sapiens, the phrase loses all descriptive power.

So, to clarify - all errors made by humans are "human error" in some sense, but that renders the classification meaningless, so we should distinguish between simple, common errors and more worrisome ones by using words other than "human error". Your example of a programmer that did not foresee a future desired use could be referred to as a "requirements error" if the programmer reasonably could have or should have foreseen it, as "operator error" if the person using the program is meant to be trained to understand its proper uses, or a "misallocation of resources error" if the problem exists because not enough budget or time was assigned to keep the program aligned with current necessary uses.

I sometimes feel that a fair number of disagreements or disputes in the comments of Hacker News are best resolved by checking whether we are using words in exactly the best way.

Whoever writes the code that makes it possible for the Hammer to be used when Screwdriver is called for during execution is introducing a bug into the codebase... It's a bug caused by a human, not necessarily the same one that created the Hammer.