We've probably all heard the programming cliché "That's not a bug; that's a feature." I know my question may seem off-topic, but I think it's an interesting question nonetheless.
I'm just getting caught up on the Stackoverflow podcast, and in Episode 21 (at around 27:20, (transcript here) Jeff talks about the developer who wrote the scoring code for Rock Band and how there were ways to score that he didn't even understand. I found that very interesting, and it brought to my mind the question: "Is that a bug, or a hidden feature?" Given that no one will ever write bug free software (or so I believe), my question here is
How do you define the term "bug"?
Is it any time an application does something you didn't expect? Must it be catastrohpic? Something else entirely?