The Go Blog

Code of Conduct Updates

Carmen Andoh, Russ Cox, and Steve Francia
16 September 2021

Although the details of our Code of Conduct have been adjusted over time, our goals have not. We want the Go community to be as inclusive, welcoming, helpful, and respectful as possible. If you want to use or discuss Go, we want you to feel welcome here.

The community is large enough that, instead of assuming everyone knows what is expected of them, our Code of Conduct serves as an agreement, setting explicit expectations for our behavior in both online and offline interactions. If we don’t live up to the agreement, people can point that out and we can correct our behavior.

In this post we want to provide two updates: first, an update about how we approach enforcement of the Code of Conduct, and second, an update to the Gopher Values themselves.

Enforcement

We want everyone to feel welcome here. What happens when members of our community make others feel unwelcome? Those behaviors can be reported to the Project Steward, who works with a committee from Google’s Open Source Programs Office to determine what to do about each report.

Since the May 2018 revision to the Code of Conduct, community members have submitted more than 300 conduct reports, an average between one and two a week. A typical outcome is to meet with the person whose conduct was reported and help them understand how to take responsibility for and correct their actions moving forward.

But what about people who do worse than make others feel unwelcome, or who refuse to correct their behavior? The paradox of tolerance is that the one group of people we can’t welcome are those who make others feel unwelcome. We have to choose between them and the people they would drive away. We choose to side with people who are friendly, welcoming, patient, thoughtful, respectful, charitable, and constructive—those who behave according to the Gopher Values and make our community a better place.

When someone who makes others feel unwelcome must be excluded, specific channels or places may block individuals based on their own observations, without waiting on conduct reports. For example, the Go release team, which has primary responsibility for tending to the Go issue tracker, can quickly block users who are acting inappropriately (typically verbally abusive) without involving any of us. To date, they’ve blocked around a dozen accounts.

Reported conduct can also (but only rarely does) rise to a level where we would consider the serious step of expelling a community member, either temporarily or permanently, from all the spaces we host: our mailing lists, issue tracker, invited events, and so on.

Examples of the kind of misconduct that could merit community-wide expulsion include:

  1. Threatening others.
  2. Abusing or assaulting others.
  3. Brigading or otherwise encouraging or coordinating abusive online behavior.
  4. Making false conduct reports about others.
  5. Harassing others. Harassment can be one severe incident or a running series of smaller incidents.
  6. Persistent borderline behavior. Infractions may seem insignificant in isolation, but repeated over time they create a pattern of behavior that doesn’t match our Gopher Values and that adds up to substantial harm.

Expulsion is not something to consider lightly. To date, only a small (single digit) number of individuals have been expelled entirely from Go spaces.

A New Gopher Value

A recurring theme we have seen in reports of minor problems is people not accepting that their words and actions affect others. In extreme cases, people say things like “but this is the internet.” We aspire to be far more welcoming than the internet overall. To this end, we are adding one more Gopher value to the Code of Conduct: “Be responsible.”

The entire “Gopher Values” section of the Code of Conduct now reads:

  • Be friendly and welcoming.

  • Be patient.

    • Remember that people have varying communication styles and that not everyone is using their native language. (Meaning and tone can be lost in translation.)
  • Be thoughtful.

    • Productive communication requires effort. Think about how your words will be interpreted.
    • Remember that sometimes it is best to refrain entirely from commenting.
  • Be respectful.

    • In particular, respect differences of opinion.
  • Be charitable.

    • Interpret the arguments of others in good faith, do not seek to disagree.
    • When we do disagree, try to understand why.
  • Be constructive.

    • Avoid derailing: stay on topic; if you want to talk about something else, start a new conversation.
    • Avoid unconstructive criticism: don’t merely decry the current state of affairs; offer—or at least solicit—suggestions as to how things may be improved.
    • Avoid snarking (pithy, unproductive, sniping comments)
    • Avoid discussing potentially offensive or sensitive issues; this all too often leads to unnecessary conflict.
    • Avoid microaggressions (brief and commonplace verbal, behavioral and environmental indignities that communicate hostile, derogatory or negative slights and insults to a person or group).
  • Be responsible.

    • What you say and do matters. Take responsibility for your words and actions, including their consequences, whether intended or otherwise.

The last two years have been very difficult: the world is incredibly uncertain and likely to remain that way for the foreseeable future. People are stressed out and burned out. In times like these, it’s more important than ever to keep the Gopher Values in mind.

As we continue to grow Go, it’s critical to foster and maintain a sense of collective responsibility. As members of the Go community, we must all be conscious of how our actions and behaviors affect the groups and spaces where we collaborate. We must take responsibility for our behavior, its impact, and how it might encourage others towards (or away from) constructive collaboration.

It is also our collective responsibility to speak up, to ensure a group dynamic that allows for productive exchange of ideas and opinions. Our Code of Conduct states that we must be “respectful of differing viewpoints and experiences.” When disagreement turns into discord or disrespect, we must speak out. Regardless of our views, we are responsible for our actions and their impact.

When we commit to these values, we provide a safe and welcoming environment for all that meets our shared community goals: collaboration and constructive communication to make Go successful.

Thank you to everyone who has joined us in being part of the Go community. We hope you feel welcome, and we will continue to work to include as many people as possible. If you have any questions or concerns, please feel free to reach out to any of us over email: carmen@golang.org (Carmen), rsc@golang.org (Russ), and spf@golang.org (Steve).

Next article: Announcing the 2021 Go Developer Survey
Previous article: Automatic cipher suite ordering in crypto/tls
Blog Index