A Code of Conduct for the Go community

11,119 views
Skip to first unread message

Andrew Gerrand

unread,
Jun 18, 2015, 5:20:16 PM6/18/15
to golang-nuts
Hi gophers,

Since Go was launched nearly six years ago, our community has grown from a small group of enthusiasts to thousands of programmers from all corners of the globe. I am proud of us; so many great projects and such a helpful and passionate group of people. Sincerely, I consider myself lucky to be involved.

But as we grow we should reflect on how we can improve.

Take this mailing list, for example. While the majority of discussions here are respectful and polite, occasionally they take a turn for the worse. While such incidents are rare, they are noticeable and have an effect on the tone of other discussions. We can do better.

At times we can be overly didactic, meeting opposing ideas with inflexibility. When challenged by a differing opinion we should not be defensive, but rather take the opportunity to discuss and debate so that we may better understand our own ideas.

I'm also concerned by reports of abuse, harassment, and discrimination in our community, particularly toward women and other underrepresented groups. Even I have experienced harassment and abuse myself. This may be common in the tech industry but it is not OK.

We are the Go community; we get to choose what is OK and what is not. It's not a choice but a responsibility, and it is a responsibility that we have neglected too long.

The positive effects of diversity in communities are well-documented. If our community is to continue to grow and prosper, we must make it a more inclusive place, where all are respected and nobody is made to feel dismissed, unwelcome, or unsafe. 

To that end, I propose that we establish a Code of Conduct that would cover the behavior of community members on the various Go mailing lists and the golang subreddit, on IRC, in private Go-related correspondence, and at Go events.

I believe that any Code of Conduct we adopt should be goal-oriented ("this is what we aspire to") rather than rules-oriented ("don't do this!"). I also believe it should empower the community to help maintain a high standard: I want everyone to feel comfortable calling out bad behavior, without the need to appeal to authority.

I have done a survey of similar codes in various communities and the Django Code of Conduct is the one I like best. I am in favor of basing our code directly on that document.

I invite all members of the community to discuss, here in this thread, what they would like to see in our Code of Conduct. I will incorporate those ideas into an official Code of Conduct proposal document that I will submit using our new Change Proposal Process.

I look forward to hearing everyone's thoughts.

Andrew

Josh Bleecher Snyder

unread,
Jun 18, 2015, 5:38:45 PM6/18/15
to Andrew Gerrand, golang-nuts
This is great. Thank you.

-josh

Peter Kleiweg

unread,
Jun 18, 2015, 5:46:41 PM6/18/15
to golan...@googlegroups.com
I don't think I like this.

Dave Cheney

unread,
Jun 18, 2015, 5:50:22 PM6/18/15
to golan...@googlegroups.com
Thank you for raising this Andrew.

I believe the Go community is not diverse enough and this directly impacts the success of the language and how it is perceived. A code of conduct combined with effective moderation of online spaces lays the groundwork for addressing this imbalance and you have my complete support.

Thanks

Dave

Jason Smith

unread,
Jun 18, 2015, 6:06:07 PM6/18/15
to golan...@googlegroups.com
I appreciate the endeavor, but how does this trickle down to the online spaces.  A few weeks ago I called out a user for a racist handle on IRC and I was booted for not talking about Go.  I was not degrading the user I was just trying to explain to someone who obviously did not understand their handle was racist.

Chris Manghane

unread,
Jun 18, 2015, 6:15:42 PM6/18/15
to Jason Smith, golan...@googlegroups.com

Online spaces like the IRC and slack group will have to follow these codes as well to be officially endorsed by the Go team. I use the go-nuts IRC very often and find it to be one of the easiest and fastest ways to engage with the community. I imagine others do as well and it is unfortunate when situations like the one you described take away from that experience.


--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Erik St. Martin

unread,
Jun 18, 2015, 6:21:34 PM6/18/15
to golan...@googlegroups.com
I think the Django Code of Conduct is a perfect starting point. It reads more as the type of people and community we should aspire to be rather than written law.

I am also appalled by some of the discrimination and violent and disgustful threats i've heard about going on behind the scenes in many technical communities, including ours. I think that it's our duty to out these people publicly. With people afraid to call out others for their behavior we continue to allow them to abuse and threaten others, and that's not the community we want. One of the things people love most about this community is how welcoming it is, i'm happy to do whatever I can to help keep it that way.


On Thursday, June 18, 2015 at 5:20:16 PM UTC-4, Andrew Gerrand wrote:

Erik St. Martin

unread,
Jun 18, 2015, 6:25:22 PM6/18/15
to golan...@googlegroups.com, jasonric...@gmail.com
Chris, we try to heavily enforce a code of conduct on the Slack group. We also require users to go by their full name instead of handles. I think removing the anonymity from the equation does wonders for having people choose their words carefully. Even some of the noblest of people can get out of hand when given an audience and anonymity.

Brad Fitzpatrick

unread,
Jun 18, 2015, 6:27:27 PM6/18/15
to Peter Kleiweg, golang-nuts
On Thu, Jun 18, 2015 at 2:46 PM, Peter Kleiweg <pkle...@xs4all.nl> wrote:
I don't think I like this.

Any part in particular?


David Crawshaw

unread,
Jun 18, 2015, 6:36:41 PM6/18/15
to Andrew Gerrand, golang-nuts
Thanks Andrew, I think this is a great idea.

The Django code of conduct does look like a good starting point. One
possible adjustment, the last point "When we disagree, try to
understand why" sounds like a version of the Principle of Charity[1]
which could be referenced directly. I find it an invaluable technique
in technical discussion.

[1] https://en.wikipedia.org/wiki/Principle_of_charity

Keith Rarick

unread,
Jun 18, 2015, 6:37:03 PM6/18/15
to Andrew Gerrand, golang-nuts
Yes! This is wonderful. I wholeheartedly support this effort.

--

Peter Kleiweg

unread,
Jun 18, 2015, 6:48:27 PM6/18/15
to golan...@googlegroups.com, pkle...@xs4all.nl
Op vrijdag 19 juni 2015 00:27:27 UTC+2 schreef bradfitz:



On Thu, Jun 18, 2015 at 2:46 PM, Peter Kleiweg <pkle...@xs4all.nl> wrote:
I don't think I like this.

Any part in particular?

The code of conduct part. 


Keith Rarick

unread,
Jun 18, 2015, 6:49:55 PM6/18/15
to Erik St. Martin, golang-nuts, jasonric...@gmail.com
On Thu, Jun 18, 2015 at 3:25 PM, Erik St. Martin <alak...@gmail.com> wrote:
> Chris, we try to heavily enforce a code of conduct on the Slack group. We
> also require users to go by their full name instead of handles. I think
> removing the anonymity from the equation does wonders for having people
> choose their words carefully. Even some of the noblest of people can get out
> of hand when given an audience and anonymity.

I think this is a noble sentiment, but we should also keep in mind that
requiring people to disclose their "full name" or government-documented
name can be harmful itself:

http://www.salon.com/2015/03/30/say_my_name_facebooks_unfair_real_names_policy_continues_to_harm_vulnerable_users/

Peter Kleiweg

unread,
Jun 18, 2015, 6:51:58 PM6/18/15
to golan...@googlegroups.com
Op vrijdag 19 juni 2015 00:06:07 UTC+2 schreef Jason Smith:

I appreciate the endeavor, but how does this trickle down to the online spaces.  A few weeks ago I called out a user for a racist handle on IRC and I was booted for not talking about Go.  I was not degrading the user I was just trying to explain to someone who obviously did not understand their handle was racist.

Who gets to decide what is racist? And even whether or not racist is a bad thing? 

The morals of which country determine what is good conduct?

Burcu Dogan

unread,
Jun 18, 2015, 6:54:52 PM6/18/15
to golan...@googlegroups.com, jasonric...@gmail.com

I think removing the anonymity from the equation does wonders for having people choose their words carefully. Even some of the noblest of people can get out of hand when given an audience and anonymity.

Even though removing the anonymity is encouraging others to choose their words wisely, anonymity is also a powerful tool when used with responsibility. It gives those who systemically discriminated a chance to speak up and participate. I wish this community will never have to adopt a real-name policy.

On the contradictory, I want to propose an anonymous reporting mechanism and a responsibility chain to review and address these concerns.

I have concerns about the negativity in the Go community and believe that it might be resolved easily with healthy discussion, good citizenship and a strong non-retaliation policy against whose raise their concerns.

Andrew Gerrand

unread,
Jun 18, 2015, 6:59:12 PM6/18/15
to Peter Kleiweg, golang-nuts
On 19 June 2015 at 08:51, Peter Kleiweg <pkle...@xs4all.nl> wrote:
Who gets to decide what is racist? And even whether or not racist is a bad thing? 
 
If it's speech that makes people feel unwelcome and discriminated against, then I personally believe that's a bad thing.

Even now, without an official code of conduct, racism is not tolerated on this list, at least. I hope that representatives from the community who use the IRC channel will be involved in this conversation. 

The morals of which country determine what is good conduct?

The answer is that we get to decide what is good conduct. This includes you.

andrewc...@gmail.com

unread,
Jun 18, 2015, 7:10:52 PM6/18/15
to golan...@googlegroups.com
Sounds good,

If you have a problem with something, you should be able to logically outline why it is flawed in a civil way without personal attacks. We should also discourage playing the victim, which is on the other end of the spectrum.

Jason Buberel

unread,
Jun 18, 2015, 7:17:33 PM6/18/15
to golan...@googlegroups.com, jasonric...@gmail.com
+1 to Burcu's suggestion:
 
On the contradictory, I want to propose an anonymous reporting mechanism and a responsibility chain to review and address these concerns.

Something like code-of...@golang.org, along with strong confidentiality and a commitment to a timely response.

-jason 

andrewc...@gmail.com

unread,
Jun 18, 2015, 7:21:06 PM6/18/15
to golan...@googlegroups.com, jasonric...@gmail.com
I don't think burdening someone like Andrew with the duty to be a private investigator and judge over personal issues is a good use of time.

Jason Smith

unread,
Jun 18, 2015, 7:26:10 PM6/18/15
to golan...@googlegroups.com
I cannot imagine any situation where if someone found something offensive you could not respect that in a public space devoted to programming.

Burcu Dogan

unread,
Jun 18, 2015, 7:26:11 PM6/18/15
to andrewc...@gmail.com, golang-nuts
> without personal attacks

I had bad personal experiences with this. The definition of a personal
attack is far-fetched and our cultural differences make it even
harder.

Rust's code of conduct perfectly explains what to do in such cases:

"... if someone takes issue with something you said or did, resist the
urge to be defensive. Just stop doing what it was they complained
about and apologize. Even if you feel you were misinterpreted or
unfairly accused, chances are good there was something you could've
communicated better"

http://www.rust-lang.org/conduct.html

> We should also discourage playing the victim, which is on the other end of the spectrum.

This is type of response I get every time I am trying to talk about
about sexism. Tech community is not diverse and always crying out loud
that someone is playing the victim rather than acknowledging the
ongoing problems.
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "golang-nuts" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/golang-nuts/sy-YcVPADjg/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to

Burcu Dogan

unread,
Jun 18, 2015, 7:41:15 PM6/18/15
to andrewc...@gmail.com, golang-nuts, jasonric...@gmail.com
> I don't think burdening someone like Andrew with the duty to be a private investigator and judge over personal issues is a good use of time.

It must be handled by a group of elected people and it is a good use
of time to make this community a healthier place. If people are
feeling unsafe or oppressed, nothing matters. I applaud anyone who is
trying to make this language a better place.
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "golang-nuts" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/golang-nuts/sy-YcVPADjg/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to

Robert Melton

unread,
Jun 18, 2015, 7:48:05 PM6/18/15
to Brad Fitzpatrick, Peter Kleiweg, golang-nuts
I have a few concerns I consider worth at least mentioning.

When reading the linked Django Code of Conduct they have a part in there
"In addition, violations of this code outside these spaces may affect a
person's ability to participate within them." which is really a push to
force Django's Code of Conduct on other communities. I am involved in
many different online communities, and what is considered acceptable
conduct in them varies greatly and often conflicts. The LKML may view
acceptable conduct very differently than Django.

Beyond that, you mentioned "in private Go-related correspondence" --
could you clarify the meaning of that? If I email a co-worker about Go,
is that a "private Go-related correspondence"? Is that something you
believe the Go Code of Conduct should apply to?

Now, those points are obviously slightly nitpicky (but I still hope you
will address them) and I think can be fixed by just cleaning up the
language a bit (or just removing it).

My more deeply held concerns are around repercussions. Because that is
what actually matters at the end of the day. Rules and consequences are
paired. Depending on the consequences some of the things decided by the
"review board" regarding the Go Code of Conduct could be career
destroying (or worse), and yet the way communities tend to handle this
is to have it "investigated" by a bunch of untrained, biased, personally
involved software engineers hearing a subset of the facts then rendering
a verdict, which unsurprisingly often finds on behalf of the person they
like more or know better.

The Django reporting (https://www.djangoproject.com/conduct/reporting/)
is an example of such a system. Now most of the consequences are
relatively trivial until you get to things like "banning" or "public
reporting"... because those can impacts peoples career or whole lives,
and in that case I would very much like to know who exactly gets to make
those decisions. Who are the "judges" and who picks them? What are the
core principals for deciding guilt or innocence? If you want to run a
mini-justice-system -- these are the things that have to be answered...
Presumption of innocence? Right to face your accuser? Rights to
fact-finding? Repercussions for false reports?

For example, as I wrote this, one of the posts on this thread was:

Burcu Dogan wrote:
> On the contradictory, I want to propose an anonymous reporting
> mechanism and a responsibility chain to review and address these
> concerns.

Anonymous reporting obviously flies in the face of the right of someone
to face their accuser, and makes a handy tool for blackballing someone
you don't like in a repercussion free way.

I hope everyone takes a moment to think about the possible very real
consequences such a system can have, as well as the responsibility it
entails.

--
Robert Melton | http://robertmeta.com

andrewc...@gmail.com

unread,
Jun 18, 2015, 7:55:52 PM6/18/15
to golan...@googlegroups.com, andrewc...@gmail.com

This is type of response I get every time I am trying to talk about
about sexism. Tech community is not diverse and always crying out loud
that someone is playing the victim rather than acknowledging the
ongoing problems.
 
There are people who are very sensitive, and there are people who are not sensitive at all. In general, we need to take the average case as the measure of legitimate problems. This is a matter of practicality. Just because some people are allergic to peanuts, doesn't mean we remove them from all menus.

Jeff Hodges

unread,
Jun 18, 2015, 8:00:21 PM6/18/15
to golan...@googlegroups.com
This is great and essential for our growing group of folks. With our own Code of Conduct, it will be easier to bring in and keep friends and colleagues who would not make it through the exclusive winnowing of a community without explicit norms for behavior. The communities that are least explicit and introspective about what is not okay are those that suffer the most loss without even knowing it. This is happy first step. I look forward to the discussion!

james...@typesafe.com

unread,
Jun 18, 2015, 8:00:39 PM6/18/15
to golan...@googlegroups.com
I'm not part of the Go community, but I think this is an excellent initiative, it's great to see more open source projects be intentional about diversity.

Varun Saini

unread,
Jun 18, 2015, 8:00:39 PM6/18/15
to golan...@googlegroups.com
After a certain size, most of the communities need some type of "code of conduct" (Otherwise why we have all the laws and rules in real life). This is a good start. I totally support it.
 
But as the proposal says, make it something we aspire and not force.

Thanks,
Varun 

ad...@dashwith.me

unread,
Jun 18, 2015, 8:00:50 PM6/18/15
to golan...@googlegroups.com
What's not to like?

stan....@readytalk.com

unread,
Jun 18, 2015, 8:01:57 PM6/18/15
to golan...@googlegroups.com
I agree with this and I'm encouraged by this direction.  I would hope as a community we could elevate towards and maintain a high level of discourse.  Personally, I would like to see questions asking for code examples and help moved to a forum like stack overflow as standard practice and have the users link to the questions/answers from here.

Christopher Nielsen

unread,
Jun 18, 2015, 8:02:00 PM6/18/15
to Andrew Gerrand, golang-nuts
Well said, Andrew! Thank you for proposing this. I support this 100%.
I've seen some exchanges on the Go lists that have been less than
civil, and I feel it is very important to be all-inclusive of ideas. I
also support the goal-oriented approach over rules-oriented.
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
--
Christopher Nielsen
"They who can give up essential liberty for temporary safety, deserve
neither liberty nor safety." --Benjamin Franklin
"The tree of liberty must be refreshed from time to time with the
blood of patriots & tyrants." --Thomas Jefferson

Paddy Foran

unread,
Jun 18, 2015, 8:02:10 PM6/18/15
to golan...@googlegroups.com
Whole-heartedly welcomed. This is a welcome addition and I'm ecstatic it's happening.

alb.do...@gmail.com

unread,
Jun 18, 2015, 8:02:11 PM6/18/15
to golan...@googlegroups.com, pkle...@xs4all.nl, brad...@golang.org


My more deeply held concerns are around repercussions.  Because that is
what actually matters at the end of the day.  Rules and consequences are
paired.  Depending on the consequences some of the things decided by the
"review board" regarding the Go Code of Conduct could be career
destroying (or worse), and yet the way communities tend to handle this
is to have it "investigated" by a bunch of untrained, biased, personally
involved software engineers hearing a subset of the facts then rendering
a verdict, which unsurprisingly often finds on behalf of the person they
like more or know better.

The Django reporting (https://www.djangoproject.com/conduct/reporting/)
is an example of such a system.  Now most of the consequences are
relatively trivial until you get to things like "banning" or "public
reporting"... because those can impacts peoples career or whole lives,
and in that case I would very much like to know who exactly gets to make
those decisions.  Who are the "judges" and who picks them?  What are the
core principals for deciding guilt or innocence?  If you want to run a
mini-justice-system -- these are the things that have to be answered...
Presumption of innocence?  Right to face your accuser?  Rights to
fact-finding?  Repercussions for false reports?

This is extremely true. The creation of a "commission" of people that
rule about those anonymous reports is not something that should be
proposed lightheartedly.

pink...@gmail.com

unread,
Jun 18, 2015, 8:03:15 PM6/18/15
to golan...@googlegroups.com
Earlier this year, the Ada Initiative published a short article, HOWTO design a code of conduct for your community - they also specifically recommend the Django Code of Conduct as a specific good example.

It's important to provide a list of specific negative behaviors that are not allowed, as it clarifies expected behavior for the community, and prevents some month-long discussions on "Was this action inappropriate? How could the person have known it was inappropriate?"  It also lets people who are the victims of harassment know that if they report the harassment, they'll be taken seriously, and not chided or publicly shamed for being "too sensitive."

As they mention, it's sometimes difficult in an online space to determine people who "enforce" the code of conduct, as well as define specific, enforceable, consequences.

--Jemma

shre...@gmail.com

unread,
Jun 18, 2015, 8:03:16 PM6/18/15
to golan...@googlegroups.com
I strongly support this, thanks for recognizing the need and value of codes of conduct for healthy and positive communities.

Mark Mandel

unread,
Jun 18, 2015, 8:03:17 PM6/18/15
to Josh Bleecher Snyder, Andrew Gerrand, golang-nuts
Yes. Thank you!

I quite like the Django one as well. Honestly, there isn't much I would personally add or change.

Mark


This is great. Thank you.

-josh

--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Caleb Spare

unread,
Jun 18, 2015, 8:03:55 PM6/18/15
to Andrew Chambers, golang-nuts
> There are people who are very sensitive, and there are people who are not
> sensitive at all. In general, we need to take the average case as the
> measure of legitimate problems. This is a matter of practicality. Just
> because some people are allergic to peanuts, doesn't mean we remove them
> from all menus.

If by "peanuts" you mean "actions that only harm a few people" then I
think it's a fine goal to run a peanut-free community.

Burcu Dogan

unread,
Jun 18, 2015, 8:04:27 PM6/18/15
to Andrew Chambers, golang-nuts
> There are people who are very sensitive, and there are people who are not sensitive at all

This is not about sensitivity. I expressed this point a couple of time
in private threads and I want to repeat it publicly. The argument of
"There is no [x] issue in Go, because I didn't experienced it" is
flawed. Each individual who raises an important concern deserves
respect.

andrewc...@gmail.com

unread,
Jun 18, 2015, 8:11:40 PM6/18/15
to golan...@googlegroups.com, andrewc...@gmail.com

If by "peanuts" you mean "actions that only harm a few people" then I
think it's a fine goal to run a peanut-free community.

No, that is not what I meant. Peanuts are things enjoyed by the majority of people, but harm very few people. Many jokes are an example of this. Take the thread recently where someone was offended by the use of russian language. Many people thought it funny, and just joked. Some were apparently offended. Should anyone who wrote some Russian there be anonymously reported?

andrewc...@gmail.com

unread,
Jun 18, 2015, 8:13:40 PM6/18/15