On Not Being A Problem
The purpose of this publication
Welcome to the first in what's going to hopefully be a short series of articles in which I, your humble host, attempt to unpick some of the crazy that's been flooding the geekosphere of late and try and explain how we can all act like mostly sensible adults, have a pleasant existence, and still not feel like we're censoring ourselves every other sentence just in case.
I said "attempt" advisably; this entire thing may, on later reflection, turn out to be incoherent garbage but I've been thinking about it for about four weeks now so it's time to ship some ideas.
The crucial tenet
To be entirely honest, at least for this particular segment of the process, the entire argument that I wish to make can be boiled down to a single sentence:
It's ok to be an ass, but don't be an asshole.
Of course, that's not quite it; the more explicit and essential version is:
Provided you're being a constructive ass, people can and should largely not mind your being an ass.
Being an asshole makes you a problem. No exceptions.
Of course, now I'm going to have to try and Define My Terms before people lose interest totally.
What is an ass?
Short answer? House.
What, fundamentally, makes him an ass rather than an asshole is that while his bluntness and tendency to screw with people is not necessarily the most charming of personal characteristics, there is at the same time almost always a purpose to these actions.
Perhaps more clearly - generally the way to make it harder for House to annoy you is to become a smarter, happier, more competent human being, and he's usually happy to assist with that, albeit in a very ... House ... way.
Yes, he calls people idiots; but generally when he genuinely believes they've just done something idiotic and if asked, he's always perfectly happy to explain why he believes you're an idiot.
The same, largely, goes for the "everybody lies" meme, and to be entirely honest I feel like my article show us the whole code probably constitutes the geek equivalent of that one and will move on smartly.
So, next definition.
What is an asshole?
An asshole is somebody who attacks people for the sake of attacking them, or attacks people in a manner that provides no actionable information.
Which ... ok, now we're going to get into the definition of "attack" and that really isn't where I was going with this. So back up a moment.
You're an idiot, and you don't understand at all.
is an asshole statement.
You're an idiot, and you need to read http://example.com/tfm and come back once you understand.
is at least mostly an 'ass' statement.
the world doesn't need people like you, who waste other people's time
is definitely an asshole statement.
The key thing here is that it applies a negative to the recipient without any actual means for them to do anything about it. It's also intimidatory, which is another fantastic problem and something I'll come back to later.
Believing that DH0 or DH1 from Paul Graham's hierarchy of disagreement are remotely useful almost certainly automatically qualifies you, as well.
What makes a constructive ass constructive?
The rule of thumb that I try to use myself is that if I find myself repeating myself for a third time and am now over the edge and yelling, then at least every third sentence must contain something actionable for the user in question to follow. No matter how angry I am. No matter how appalling I find their actions.
Even if they're trying to parse HTML with regular expressions with strict turned off and -X on the shebang line, I still have to say something constructively and usefully actionable every three lines. Otherwise it's time for me to roll a cigarette and go take a cancer break, and let somebody else try.
Why is this important to me?
You may be getting the feeling here that I'm trying to paint myself as an ass, and that's sort of true, but you could equally argue, and I think perhaps more usefully, that I'm a recovering asshole who mostly manages to be just an ass these days and aspires to be a constructive ass and is trying to set some ground rules here that I can manage to happily follow but the sort of people I end up banning from IRC channels and etc. won't.
I provided Gregory House as an additional albeit fictional example since he's probably a better illustration since at least the moments when he falls off the wagon into being an asshole are plotted in such a way that he invariably gets punished for them. Also because he's way cooler than I am.
The underlying purpose
The real point here is that a serious technical conversation can evoke some fairly strong emotion in the people involved, or at least a high level of enthusiasm that can be taken for strong emotion when there's a whole internet in between interfering with the non-verbal communication, and that this means that it's very easy to get horribly confused.
I want to try and set up a conceptual framework here within which we can decide whether or not somebody's actions are constructive, or at least constructively intended - since somebody who's thinking like an ass but sounding like an asshole can probably be trained given a clicker and some biscuits - so that we separate the wheat from the chaff without forcing people's conversational options into a box shaped by the subset of things you can say that don't offend anybody.
The thing here is, that isn't a solution at all. Some words offend some people. Worse still, some words cause people to be upset and offended on other people's behalf, and this often isn't particularly useful - for example I have to entirely avoid profanity when I visit my grandmother in the company of my parents since otherwise my parents cringe. On the other hand, when I talk to her in their absence I worry a lot less since the last time I apologised she told me that apologising to a World War II air force auxiliary (WAAF) was pretty pointless when I'd only said "shit" once in the past sentence.
Why disallowing asses goes wrong
Take this sort of behaviour to an extreme and you get automatic ostracisation simply for using a word or phrase, probably automated to the point where even wrapping it in sarcasm tags won't save you; the only exception to this that I can imagine approving of is a particular furry IRC network's decision to patch the server to auto-K-line anybody who said "Yiff in hell, furfags" in public or private message - and frankly, I largely only approve of this one because it's hilarious.
The other horrible problem that you end up with is the idea that being polite is more important somehow than being constructive. As an eample, Andy Lester wrote an excellent article on standing up for your community . Yet he himself has had to be excluded from significant chunks of the perl community due to a failure to understand that comments like "jumpin' jesus, this need not be a teaching experience" might be a lot more polite on the surface than "screw you, I'm not reading the manual, spoon feed me" but is just as disrespectful to the people trying to help you.
Fundamentally, what we need more of is authentic, genuine discussion, where people can genuinely help each other. Being disallowed from saying "that's a really stupid idea" isn't going to be a net win while the world still contains people who want to parse HTML with regexps, or think that Net::IRC is a really excellent idea in 2012.
That doesn't mean that just because you're being constructive, you have a license to say whatever you want. You can manage to be a constructive ass but being an asshole is always, invariable, a destructive, disruptive thing over time.
We need the freedom to participate authentically, to participate enthusiatically ... but we also need to remember that everybody else needs to have that freedom too, so let's lay a few ground rules to help with that.
Disagree about what you're disagreeing about
First rule: No horrible tautologies in your sub-headings ... no, wait, that's not where I was going. Uh. Ah yes.
Seriously, this one isn't difficult, and it makes pretty much everything else fall into place.
When you are disagreeing with somebody, any fact that does not have a direct relationship to the matter you are disagreeing about is out of scope.
This is where Paul Graham's stuff on Ad Hominem comes in. "He's a US Senator" is not an argument for or against somebody's understanding of the internet. I mean, there was the "not a truck" guy as an outlier in one direction and then there's Al Gore, who at least four web pages inform me invented the thing in the first place!
This can of course blur a little; you might suspect that somebody's missing a piece of the puzzle because they've spent too long in C-land (and left without a seal of approval) but that's not a grounds for disagreement, that's a grounds for providing a different viewpoint in order to elucidate your argument.
Explaining that some fact about the person may be making it harder for them to see your point is only useful if you then use that to re-explain your point usefully.
This is, however, still not a directly related fact and while it's useful for discovering how to argue better it's not something that's negative and it's not something that in any way constitutes an argument. Not even writing PHP always renders people completely insensible - with years of care, attention and reassurance a full recovery can be made, so that assumption's out as well.
The most important thing though from the point of view of a technical community is that all of the other things that we might argue about are completely out of scope during technical debates. Or, to make this clear:
No physical aspect of the other person is relevant.
Their height is not relevant.
Their genetic background is not relevant.
The amount of hair they have is not relevant.
Their taste in clothes is not relevant.
Their gender is not relevant.
The size of their genitalia is not relevant.
The size, in fact, of any part of their body, is not relevant.
No emotional aspect of the other person is relevant.
The fact that they're a gentle person is not relevant.
The fact that they're a blunt person is not relevant.
The fact that they're a loud person is not relevant.
The fact that they're a quiet person is not relevant.
The fact that they're an extroverted slut is not relevant.
The fact that they're an introverted haphephobe is not relevant.
No financial situation of the other person is relevant.
The fact that they own a house is not relevant.
The fact that they rent a room in a flat is not relevant.
The fact that they live with family is not relevant.
The fact that they make more money than you is not relevant.
The fact that they make less money than you is not relevant.
None of this stuff is relevant to your technical discussion.
NONE OF THIS STUFF IS RELEVANT TO YOUR TECHNICAL DISCUSSION.
If you try and make it such, for the purpose of scoring points or of pressuring the other person into submitting to your opinion because they feel intimidated, then you are, simply, an asshole, and if this is any of my communities, I'm probably going to ban you.
The crucial tenet, altered
An ass uses whatever means they believe will work in order to successfully get their point across such that the other person becomes enlightened.
An asshole uses whatever means they believe will work in order to browbeat the other person into conceding the argument.
How do you tell the difference between these?
Both of these make it appear like the ass/asshole person has "won".
Only an asshole sees victory, because victory requires a loser.
An ass wants success, and that requires learning, not just submission.
Remember: House smiles when Wilson learns, when Wilson pranks him back.
If you want an easy way to tell between the two, I suggest you start off with the "disagree about what you're disagreeing about" rule, but consider a fundamental question: If I was in a similar class of argument, would I feel indignant that this person was disagreeing with me, or intimidated that this person is attacking me? If the former, try and make sure that everybody involved understands it's a debate and that it can get hot until somebody realises they're wrong or until a conensus is reached. If the latter, this is assholery, pure and simple, and it's time for it to stop.
So, in summary.
Trying to be a constructive ass is probably ok.
Being an asshole is never ok.
Elucidate, debate, relate; try not to intimidate.
Don't be part of the precipitate; grit is overrated.
mst talks too much, and will explain how to make it stop in another article.
Thanks for reading.
-- mst, out.