I was writing a long article about my thoughts on software engineering, and how I’m tired of seeing people hate on some pet application because of a nuance they find infuriating. It’s demoralizing, as a developer, and also very aggravating. Reasoned complaints are fine by me; it’s the unilateral lambasting without duly considering counter-arguments that drives me nuts.
So in thinking about blame, and placing it (if at all), I came up with a few questions I tend to (or should) ask myself first:
- Am I informed enough to accurately place blame?
- Is the target of my blame truly correct?
- Can I support my argument objectively instead of emotionally?
- Have I considered and accounted for reasonable counter-arguments?
I find that most tirades that aggravate me fail to address one or more of these basic premises. As for “objective” support, I purposely didn’t mention “subjective” arguments, because sometimes those are inevitable. What’s important is having support that amounts to something more substantiative than “because I said so.” You must be able to acceptably answer the rhetorical question “why?”
If not, your case holds no water. I think we would have a lot fewer stupid and frivolous arguments if people considered questions like these. And for the more serious arguments, I suspect they would be a lot more civil.
My software-specific post may come later, but this is the basic premise that can be applied to many more areas. I’m also interested in hearing from those of you more well-versed in logic and debate about how useful these ideas might be.