A common topic of
argument debate amongst coders has always been whether a particular set of behavior constitutes a bug or a feature (or even a misfeature). After many years of contemplation (and argument), I have come up with a test which I believe can make a definitive classification:
A set of behaviors is a feature if and only if it can be ignored, disabled, circumvented, disregarded, removed, deactivated or otherwise configured to be completely unnoticeable by the user. Otherwise, it’s a bug (or, at best, a misfeature).
As an example I offer autombile air-bags, a fantastic life-saving device, except when it’s child-killing monstrosity. The solution? Add a switch to selectively disable them.
Bug + Switch = Feature.