Talk 6: Dealing with Poisonous People in Open Source Communities
I came in partway through this talk. It's about how to deal with peole who are considered poisonous - not really helping in a project, or helping in a way that is counter to the community.
They had a few points, traits you have to have. Humility was the one that jumped out to me, and thick-skin. There will be people who try to detract, you have to take it as it comes. (This isn't a very useful paragraph, in reality.)
Do not commit a huge entire feature all by itself in one fell swoop. Do development in a branch, so people can follow. Have peer review. Make sure people actually follow along. This reduces the bus-factor -- the concept that, if one person did all the work and gets hit by a bus, you're screwed.
Do not allow names in files. You are contributing to a project, and you want to avoid people owning particular parts of it. If there are no names, people are more likely to work on other parts of the codebase, without thinking about someone getting pissed or whatever. You can still have people who are the experts at that section, but it's not a formal involvement, it's just ways to help out.
Do not allow email filibustering. This is when someone will just email and email and email, even though they're just one person, they're acting as the vocal minority. The big minority. Don't rehash issues. Let sleeping decisions lie, don't go over them every few weeks.
Have a well defined process. For release, accepting patches, and reviewing them. You also need process for adding new committers. Community founders establish culture, and then the culture becomes self-selecting. These types of people tend to come here, etc.
(Vox, why are you making me hit enter twice now, halfway through my post... you really are making me sad, really.)
Voting is a last resort. If your community is healthy, you should never come down to this. If you're built on respect and humility, then you should be able to accomplish things to make decisions. It can be useful when a disagreement is going on for way too long, and you're spending too much time on thinking about it. If you do make votes, don't make weighted votes.
And now - when to flip the "bozo bit".
Communications annoyances - such as silly nicknames (like mine, whoops), or multiple nicknames (they change them up so as not to seem the same person), too many capitals, or weird punctuation, or "omg wtfs" etc. These are just generalizations, things to watch for.
Also, if the person tends to never get the clue. They don't pick up the mood, or understand the goals. They just show up and spit things out and demonstrate they've not been around and watching. They don't respect the community or the current situation. People who don't RTFM.
Hostility - if the person is flat out insulting, probably a bozo. If they're demanding help, with no sense of propriety. Entitled. Blackmail. Trolling. Riling people up. Accusations or paranoia. These are dead giveaways that someone is not helping the community in any way and detracting from your effort.
Conceit is another issue. They will say things like, "Oh if you don't do this, then this is going to happen!" or "If you do this, it will be the best thing ever!" Or, bringing back up old topics, see above about the email filibustering or whatnot. They won't read the archive, think they're the best thing since sliced bread, and are rather annoying. You want to keep an eye on them, see what they're saying, but don't lend much weight to it.
Lack of cooperation - talk talk talk, complain complain complain. If they're not willing to discuss how to improve their ideas and design, then that's a big problem. If they're so thin-skinned that they're unable to take criticism, then it will take too much effort to get things fixed in anything they do, it may not be worth it.
NOW! What to do with these people you've flagged?
Is this person draining attention and focus? If so, is this person really likely to benefit the project? Next, is this person paralyzing the project? Is it worth it?
Don't feed the person. Don't feed the troll. Don't give them any leverage. Don't get emotional! (Editor's note, this is my big one... whoops...)
Do pay attention to newcomers. Even if they're annoying at first, don't reject out of hand. You don't want to nuke people for sounding silly as opposed to being hostile. They could be just warming up, nervous and not sure. Do look for facts, under the emotions. Do know when to give up and ignore the person. Do know when to boot someone from the community. Do repel the trolls with niceness!
In summary...
Understand what's going on, keep your attention and focus, keep your community united against trouble, and deal with any problems. Don't jump to conclusions ... be sure before you act. Deal with the facts.
"Stick to what you're there to do... write great open source software!"
Comments
Great stuff. btw - thanks for all the updates to keep us informed!
Interesting read!