The fallout from PyCon this year has been dramatic, involving Adria Richards, Alex Reid, SendGrid, PlayHaven, and the PyCon organizers. I wasn’t involved in this event at all, so I have no first-hand knowledge of it, but it saddens me greatly. So many things have happened that I wish had not happened.

Improving community is difficult. Getting 2500 people together without friction is impossible. Friction and offense will happen, the question is, what do we do about it? It seems to me there are two mindsets about how to improve a community.

The first mindset is, “Let’s get rid of the assholes, and the people that are left will be a great community.” I’ll call this the shunning model: identify the Bad People, get rid of them, and you will have only Good People left.

The second mindset is, “We’re all different, and we’re going to make mistakes, so let’s be thoughtful and educate each other.” I’ll call this the educating model: people are imperfect, but basically good, and if we can keep an eye on things and keep communicating, we can all improve.

When I look back at the aftermath of PyCon, I see a number of events that fit into the shunning model, and few that fit into the education model. This to me seems to be the heart of the problem.

We often talk about building an inclusive community, which usually means that women should be as welcome as men. I want it to also mean that people who make mistakes can be kept as members. Clearly, some people will be difficult enough that they won’t be welcome, but most people who offend are good people who’ve made a mistake, not incorrigible assholes. I don’t want a One Strike And You’re Out community.

Let me tell you about my experiences at PyCon. I had at least three incidents of “community friction” during my time there:

Friday at lunch, I sat across the table from a friend of mine. I made a joke that she found mean, and she told me so. I felt terrible, and apologized to her then, and again later when I saw her next.

Saturday night, I was at the rowdy event that engendered a formal response from PyCon: a member was ejected and banned from PyCon. I was more than just an observer: I tried to talk to the member about what he had said. I also helped report it to the PyCon organizers.

Monday morning, I was having breakfast with a group of people, both friends and new acquaintances, when someone used the word “retarded” to refer to some suboptimal technical detail. I don’t like people using “retarded” as humor. I said nothing, but winked across the table to a friend to say, “yup, I heard it, I wish he wouldn’t say that, but I’m not saying anything about it.”

In incident #1, I was the offender, and I’m really glad I was educated instead of shunned.

In incident #2, I was the offended. The member in question has been banned. I wasn’t part of deciding the sanctions, but am glad to see in his blog post that he is thoughtful about what happened.

In incident #3, I was the offended, but did nothing. If I had known the speaker better, I might have said, “I wish you wouldn’t use that word that way,” but it didn’t seem right at the time.

Friction is inevitable. One of the great things about PyCon is that it is right at the boundary between being comfortable with old friends, and meeting new people. There are bound to be incidents. We have to accept that, and try hard to talk to each other to improve things for everyone.

Education is better than shunning.