The Code Of Conduct

by Jesse Noller


By now, if you're linked in to current Python / Python Software Foundation News you know that as of November 21, 2012 the PSF now requires that all conferences it sponsors, or provides grants to (and there are many), have a code of conduct in place. The exact wording of the reslution the PSF board ratified is this:

RESOLVED, that the PSF will only sponsor conferences that have or agree to create and publish a Code of Conduct/Anti Harassment guide for their conference. A basic template to work from has been generated by the Ada Initiative at

Before I go much further; I'm going to state unequivocally that I am the one responsible. I proposed, argued for it, put it on the agenda and argued for it vociferously during our meeting. However, the board approved it overwhelmingly as a body with a single abstention.

Additionally, as you read this, do not assume anything about my personal politics, political leanings, etc. You would be wrong - trust me on that one. If you are assuming that a horrible event at a PSF / Python event triggered this, you are also wrong.


Community is a broad term. In the case in which I refer to it - I refer to is as the constantly growing and evolving and diversification of the big-P Python community. The Python community is growing at an astounding pace. The number of Python related conferences and events is also growing at a pace which frankly floors me. We have "PyCons" popping up all over the world almost monthly. Canada and South Africa just had their first one this year for example.

Most, if not all of these events are put together by small teams of dedicated, passionate and kind teams of largely unpaid volunteers. This is both amazing, and heartwarming. The level of love and passion shown by so many in this community amazes me on a daily basis.

I once said this about the community in which I am honored to be a part:

Some of you may have met me - almost none of you have met my wife and family - and yet the outpouring of support from the Python community has humbled me and brought me to my knees in thanks. It brings tears to my eyes just thinking about the generosity that has been bestowed on us by people inside of this community. Something as small as a card - a box of crayons and a coloring book for my oldest daughter - it has helped my family and I and touched us in a way I don't think we've ever been touched.

It is amazing to me that I can admit to hurting or going through something like this and people all over the world will immediately start sending the resources on where to look for information or who to talk to or specialists that they know, contact information for family members that they know who have experience with epilepsy or seizures.

It has been amazing to me the amount of support that I've gotten from a community that's based on a programming language; we are all engineers and it is not something that you'd necessarily expect.

To this day; I stand by those words. Each day I get well wishes, each day I get a chance to call attention to others within our community who need help, or call attention to those who have fallen.

This passion I have, this love for the community, its ever-growing diversity and what it has done for me is exactly why I put this resolution up to the board. It's not because the Python community is broken. It's not because we've had a "trigger event", although Julia Elman's experience and call to action sticks in my mind like a road flare when thinking about this.

So no: I don't think our community is "broken" or has performed ill - but nor has it been perfect, nor shall it ever be. I am proud of it, I spend countless hours working on behalf of it, and I would not trade it for the world. It has made me feel welcome, it has supported me in my times of need. It has allowed and empowered me to do amazing things.

Oh yeah, and I'm totally in love with the language, even if I cheat on it sometimes.

But, like with code - there's a smell in the community - but it's the larger Programming community and its conferences and events as a whole.

D stands for Diversity.

We've seen enormous growth in the diversification and inclusion of the vast non-majority within our communities thanks to the hard work of many - this includes the PyLadies movement, Women Who Code, Devchix, CodeScouts, The Ada Initiative, the Boston Python Workshops, OpenHatch, RailsBridge and many, many others.

What we are seeing is a fundamental shift in the awareness that we need to be more welcoming, more open to those who do not make the majority of our community. We need to have workshops, we need to be more inviting. We need to lower the barrier of entry of contribution. We need to make safe havens for those who want to contribute but who are scared and intimidated by the status quo. This includes men, women - everyone.

Part of this effort is the social realization of one of the Zen of Python rules:

Explicit is better than implicit.

What I mean is this: no more unwritten rules or expectations. No more assumptions that we're living in a utopian meritocracy. We don't. Sure, OSS has been defined as "they with the best code and who does the work, wins" - but that ignores the frequent corollary of "those with the thickest hide, and ability to fight win". Look at any mailing list - look at the discussions on the relative merit of a given feature, bug fix, etc. You will see things that would make your hair turn grey. You will see people shouted down for naivety, you will see that even the most meritorious idea may not win against the establishment.

This happens everywhere. This is why I say "explicit is better than implicit" when it comes to social norms and expectations.

The idea that there's some unwritten guide on how to behave in society, at a conference, at a meetup, or anywhere is fundamentally absurd. Look around you for examples.

But what does this mean in the Python Community? It means we can do better! We already are on so many fronts - but just because we're seeing positive changes doesn't need we should stop the movement.

Back to Code of Conduct

A code of conduct is a set of rules outlining the responsibilities of or proper practices for an individual, party or organization.

That simple, right? Well, yes, actually. When it comes to a code of conduct for a mailing list or group or for a community such as Ubuntu and Fedora or for a conference it all boils down to the same thing. A set of rules that don't dictate what you can do, or who you must be, but what is not acceptable.

It's sort of like laws. Laws don't generally dictate your personal freedoms - what they do normally do is dictate where, given unlimited freedom, your "right to do whatever you want" ends. Laws are there not to stop crime. They are there to set rational expectations for rational people - they tell the rational actors in our story what they can count on. They set in place the rules of societal engagement and put in place punishments for when those rules are broken.

A code of conduct is no different - it is an explicit set of rules on what isn't acceptable! It's not there to take away your rights - unless you feel your rights include sexual harassment, putting pornography in talk slides, or making sexist or racist jokes in a large group of people (an event). It's there to show everyone what is not acceptable behavior, and to show what repercussions there are if anyone violates this behavior.

Quoting Jacob Kaplan-Moss on this (re: Code of Conducts/anti-harassment policies):

The criticism that’s usually raised at this point is that anti-harassment policies are unlikely to actually stop this sort of behavior. Someone who thinks that assault is acceptable behavior isn’t likely to be stopped by a code of conduct. Most people are fundamentally good and don’t need to be told not to harass their peers.

Just like laws; a code of conduct / anti-harassment policy is not going to stop bad actors. It won't. It can't. It might convince a person who acts in bad faith, or intends to do so to not attend the event - it is, after all, a signal they are not welcome, and there are consequences. Really though - again just like laws - it won't stop a determined bad actor. If I, the PyCon chair, choose to slip a bit of porn into my slides as part of the PyCon opening ceremony, I can. No one is going to know until they see it ala Fight Club.

However, should I choose to do so, instead of unspoken, unwritten rules about what's acceptable, or what consequences there would be (social shame, etc), we have a lovely document that outlines precisely what will happen to me.

If a participant engages in behavior that violates this code of conduct, the conference organizers may take any action they deem appropriate, including warning the offender or expulsion from the conference with no refund.

I will, simply put, be kicked out. As conference chair, I will be asked to leave the conference area, I will not be given a refund. I will, in addition to this, probably be publicly shamed by all of those people who I knowingly and willingly abused, I will lose my seat on the PSF board, etc. I would, in fact, support being asked not to attend PyCon, or other Python conferences for a period of no less than 1-2 years.

Quoting the Staff Guidelines:

Publishing an account of the harassment and calling for the resignation of the harasser from their responsibilities (usually pursued by people without formal authority: may be called for if the harasser is the event leader, or refuses to stand aside from the conflict of interest, or similar, typically event staff have sufficient governing rights over their space that this isn't as useful)

Take another hypothetical. Say that someone - anyone, man or woman, calls my phone number during the conference and say they are being harassed. That too, is covered explicitly in the Code of Conduct, including the Attendee and Staff guides to incident reporting.

  • I will immediately ensure the safety of the Attendee.
  • I will take a report on the incident.
  • If there is immediate danger; I will contact law enforcement.
  • I will call a staff meeting, and we will discuss the incident.
  • I, or one of the staff will approach the alleged harasser, their side of the story will be taken.
  • Should the report stand, based on the information, take further action against the harasser.

If you read the Staff Guidelines you'll note something interesting: there are protections in there for victims, and protections for alleged harassers/Code of Conduct violators. This is meant to protect everyone involved in the situation from false allegations, or knee jerk reactions.

This Code, this Guide, provides the explicit declaration of what is expected, and how we will react.

But Everyone is nice, we've always been cool

I know. Honestly, I do. Except for minor incident that I recall, PyCon US has largely been free of issues such as this. Every meetup, conference, etc I have been to has been filled with nice, kind people and largely jerk-free. This is a testament to the community as a whole.

So, you ask: if we're all chill cool people, and nothing bad has happened, why have one?

Because it won't always be that way.

If we continue to expand and grow (and we will), and if we continue to grow even more diverse - in sex, race, creed and geography - the chances of "an incident" will grow. In fact, I know incidents have happened and been dealt with.

So no, the unspoken rule of "don't be a jerk" doesn't scale very well. And that's what we're talking about - a scalability problem. The social norms and rules of a group of five people, or one hundred people may float. What about 200? 500? 800? How about 2300 people (the attendance of PyCon 2012)? No. "Don't be a Jerk" may be our unspoken, unwritten community motto; but its not enough for those on the outside looking in.

Those outside of these circles want clear lines on behavioral expectations. They want to know that not only are there unwritten rules about not being a jerk - they want to know what will happen if a Jerk Occurs. This sets their expectations, and it gives them comfort. It makes them feel more welcome, more safe. Especially when they're part of a group who has been put under constant objectification and harassment for decades in our industry.

The Social Signal Flare

A Code of Conduct is, in fact a social signal flare to "others" - it's a message to them on what to expect, that they can feel welcome and safe and most of all that someone cares. I have the emails and phone calls thanking me and the PyCon team for the Code of Conduct to show it. They all carry the common theme:

Thank you. Thank you for showing me you care, and that you are thinking of me

What has this triggered? Combined with this guide, and outreach, we have drastically increased the number of (for example) female speakers at our event. We have more female and varied attendees. We have people bringing their families with them. Not just because of a single document. But because they know that because of that document and the history and people within the Python community they can feel safe, and welcome.

This social signal flare; this written set of guidelines matters to them. And we're not the only ones realizing this OSCON, Ruby Conferences, JS Conferences and other events - all of them are realizing that having rules and expectations set out for all to see makes it better for everyone.

So why the Foundation?

Now we get to the beginning: why an "edict" from the Foundation board that states this is a must for any conference they are providing money to. Well, if you read this far, hopefully you're convinced of the basic case of having a document such as this in place.

Let's look at it from a brand perspective.

For PyCon 2013 I was asked by no less than four different sponsors if I had a Code of Conduct / Anti-harassment guide in place. If I did not, they would not become sponsors. Conference attendees are demanding conferences have one, or they will not attend, or speak.

For example, I applaud Caktus Consulting Group for taking a hardline, zero tolerance stand:

…Along with this blog post, Caktus is asking conference organizers and other sponsors to join us in the following effort: Moving forward, Caktus will require that a zero-tolerance sexual harassment policy is established and enforced by the organizers of any conference that we sponsor or attend. We want to ensure that our community events are safe, welcoming, and supportive for all of our colleagues…

Let us assume that the PSF is no different than a sponsor (it is, sorta): we provide you money, we give you our name and logo (and probably setup a booth too). We are, by our participation and funding, implicitly and explicitly endorsing your event.

This means that should something happen, the "PSF brand" - which to many, is synonymous with "Python" (duh) - would be tarnished. We would be seen as endorsing an event which did not deal with a situation/incident. We would be lobbied to pull our funding/sponsorship (and I would vote for it). We would probably, via social pressure, required to distance ourselves from the event and the organizers and probably even issue an apology of our own.

So. Starting for the idea that these documents, these guidelines benefit us as a community, and help us grow more diverse and inclusive, that they help in some way to make events more safe and welcoming - we end up in a place where from a pure business perspective it is in our best interest to put these protections in place as a mechanic of sponsoring an event or issuing a grant.

These protections provide social good; they are also smart business. Yes - it is a sign that we are growing up, but that's a good thing.


In closing, all I can say is this - no one is trying to be a fascist, or a nanny state. No one is trying to say you can't cuss like a sailor (I do, but mostly behind closed door). No one is trying to censor you, or tell you you are not welcome. This is not a perfect, or foolproof solution: it is a step in the right direction.

Quite the opposite. We, the Python Community, are trying to tell people who are scared, or who feel alienated that they are welcome. That they belong. That the community, the foundation and everyone cares about them. That we want to provide a safe place for collaboration and the free exchange of ideas.

We want to show everyone what they hopefully already know by now - that the Python community, despite its quirks, is welcoming, supportive and open to all.

Jesse Noller PSF Director