When something goes wrong, do you or do you not say something like this:
My bug crashed the system. Our bug crashed the system. Some bug crashed the system. There’s a defect. We don’t know how to use it.
Or do you tell your client that you’re “having an issue”?
There is no issue here! The feature is broken! There’s no need for discussion, understanding, and compromise here. The feature is broken.
Let’s work together to stop deferring blame and start accepting responsibility!
I often wonder how the word issue (as a noun) began replacing bug or problem in developers’ vernacular. Outside of development, I generally hear the word applied to fuzzy political or economic topics. It implies, “There’s no right answer, compromise must be found, and debate and discussion will bring us to compromise.”
Development might be more fun if every problem we ran into was worth a hearty debate and discussion, but in reality, problems are usually a bug. Or the person using a library isn’t using it the way it’s meant to be used. We write a failing test, fix the bug, and move along.
Perhaps the word came into use because it comes across as a bit softer than the word bug. “We fixed an issue with the Apache web server,” sounds a lot better than, “We were using the Apache web server incorrectly, and the application was crashing.” It’s a subtle way of deflecting responsibility onto another party.
Upon further thought, this behavior comes across as fairly petty, doesn’t it? That must be it. It isn’t the overuse of the word or the dilution of the definition that bugs me, but the deflection of responsibility. Indeed, how petty.
I’m thus going to add the word issue to the list of weak language. I’m removing from my vocabulary. Other words and phrases include like, kind of, sort of, and I guess.
Why don’t you add issue to your list as well? Let’s use more accurate words instead and take back responsibility for our actions and mistakes.
Edit 7/17/2012: inserted a missing word in the introduction