The views in this article are my own and do not represent those of any organization with which I am affiliated.
- I served on the NumFOCUS (NF) Diversity in Scientific Computing Committee (DISC) committee from 2017 to 2019.
- I was a contributing member to the NF Code of Conduct (CoC) sub-committee which developed the CoC. The CoC was ratified by the NF Board in August 2018.
- I was Diversity Chair of JupyterCon 2020.
- I chaired the JupyterCon keynote session where Jeremy Howard spoke on October 13, 2020.
- I am a co-author with Jeremy Howard et al on the manuscript Face Masks Against COVID-19: An Evidence Review.
Note: All of these positions are volunteer.
Background: What Happened at JupyterCon 2020?
A background on the CoC events at JupyterCon 2020 are as follows:
- I Violated a Code of Conduct, Jeremy Howard, October 28, 2020
- Public Apology to Jeremy Howard, NumFOCUS, October 31, 2020
- A Personal Apology to Jeremy Howard and the Community, Andy Terrel, November 1, 2020
- JupyerCon 2020: Code of Conduct Findings, NumFOCUS, November 3, 2020
- Keynote talk: I Love Notebooks posted on YouTube, November 13, 2020
NumFOCUS found I violated their Code of Conduct (CoC) at JupyterCon because my talk was not “kind”, because I said @joelgrus was “wrong”.— Jeremy Howard (@jeremyphoward) October 29, 2020
This sets a bad precedent.
Joel was not involved in NumFOCUS’s action, was not told about it, and did not support ithttps://t.co/scl4IADmg8
We have reviewed Jeremy Howard’s post on the handling of a JupyterCon 2020 COC Incident. We are currently working on a response. We thank you for your patience at this time.— NumFOCUS (@NumFOCUS) October 29, 2020
How Jeremy was treated by the NumFOCUS Code of Conduct committee is terrible. He was left hanging for over a week not knowing what he'd been accused of, and he wasn't given a chance to provide input in the investigation, over a technical disagreement https://t.co/QRW7E123GB— Rachel Thomas (@math_rachel) October 29, 2020
Thread of some posts about diversity & inclusion I've written over the years. I still stand behind these.— Rachel Thomas (@math_rachel) October 30, 2020
(I'm resharing bc a few folks are suggesting Jeremy's CoC experience ➡️ partially our fault for promoting diversity, we should change our values, etc. Nope!)
Public Apology to Jeremy Howard:https://t.co/nzrqY25PQy— NumFOCUS (@NumFOCUS) October 30, 2020
I received an apology from @NumFOCUS and I replied to let them know that I accept their apology.— Jeremy Howard (@jeremyphoward) October 30, 2020
I believe that all involved had the best intentions, and NumFOCUS tell me that they plan to improve their processes in the future.
I'm not planning to discuss this further.
My personal apology: https://t.co/MOlOiJnu8e— Andy Terrel (@aterrel) November 1, 2020
The complexity of codes of conduct is an important topic, and it has been on my mind for some time. I began writing this article over a year ago, the last edit was on September 20, 2019. Three days later, my brother passed away unexpectedly. There are many unreturned phone calls and emails as well as unfinished projects from last fall.
Given the recent events with JupyterCon, I felt it was imperative to return to it.
The goal of this article is to share what I have learned about codes of conduct with the community, rather than dissecting what happened with JupyterCon.
Why are Codes of Conduct Necessary?
The goal of a CoC is to create a professional and welcoming environment for all attendees. Additionally, in the tech and analytics circles, it has been implemented to promote a diverse and inclusive culture, particularly with respect to underrepresented persons.
Below is an excerpt of mine from a podcast interview Women in Data Science from Nov 2018:
Reshama: Oh, a code of conduct is so important. When I started organizing four years though, we didn’t have a code of conduct and there were some of these behaviors that we would, I would observe at our meetup events. I wasn’t quite sure how to address them. Then codes of conduct came along and then it made it so much easier to to say, “That behavior’s unacceptable, because it violates our code of conduct.” Now I’ve moved forward to sharing the code of conduct before the event begins so people know what behavior is expected. That’s been like a tremendous help, and I think that for people who attend events knowing that a code of conduct is important to the organization. It makes them feel comfortable in terms of attending events and knowing how the culture will be.
Code of Conduct Incidence Reports
We hear much about CoC, but not necessarily the actual
violations incidents. Given my experience being an organizer for two meetup groups in New York City, Data Umbrella and NYC PyLadies, I have observed various violations incidents. Here are some examples of behavior that are considered disruptive to building a desired culture consistent with our mission:
- Two attendees were speaking during a presentation. They were asked multiple times to stop, as it was disrupting others’ experience of the event.
- An attendee was visibly intoxicated and using profane language during break.
- Two members joined our online community with the user name “bad guy” and “kneel before me”.
- An attendee badgered two panelists, asking inappropriate (sexual) and irrelevant questions. This is also called “heckling the speaker.”
- An attendee was sleeping, head down on a table; Our host brought that to the organizers’ and communicated they did not want guests sleeping in their event room.
- Continued communication after requests to cease.
- Marketing people stalking volunteer organizers to provide free marketing of their products and services.
- Meetup members with sexually explicit profile photos.
- Meetup members who contact other members in romantic pursuits.
- Rude, aggressive and argumentative language in online chat forums.
- and so on.
We now have CoCs and we would expect that our events are amazingly professional and inviting, right? Except that is not the case in reality. I think the next stage can be referred to as CoC 2.0.
Here are some challenges with effectively implementing CoC:
- Delayed reactions
- Feelings of unease
After hosting a meetup event, I typically return home, unwind and go to bed. Sometimes though, I cannot sleep and after careful introspection, I realize there were some occurrences at the meetup event which evoked feelings of discomfort.
It takes time to process events, feelings and interactions. Sometimes it requires careful evaluation and even talking things out with others to understand where the unease is coming from and what the issue is. Additionally, some behaviors are disruptive and do not have a straight line connected to a bullet point in a code of conduct.
Conflicts of Interest
Sometimes the codes of conduct are violated by people who are at the very top in leadership positions, and given the power differential, accountability is not always possible.
A CoC is Just the Tip of the Iceberg
Codes of conduct are critical, but they are just the tip of the iceberg.
In the past two years, I have learned that the following are essential:
- Support (*a): providing support to a potential “reporter” to discuss prior to filing a report
- Intake: procedures on how reporting is done
- Support (*b): providing support to a “reported person” to discuss thoughts prior to responding
- Process: procedures on how the CoC reports are processed
- Independence: ensuring that an independent third party is involved to anchor reports and communications
- Transparency: letting the community know what reports are incoming and how they are resolved (at a high level, while preserving confidentiality)
What Can Be Done
Otter Technologies offers CoC incident reponse workshops. A 4-hour training class runs about USD 350.
Language is important:
- Reporter: person who files a report
- Incident: event that is being referenced
- Reported person: person about whom the report is filed
- Response: how an incident is processed and addressed
Not [ ], but [ ]
victim–> reporter violation–> incident offender–> reported person enforcement–> response
Notice that words such as “offender” and “violation” are replaced with neutral terms such as “reported person” and “incident”.
During my research for the article Codes of Conduct for NeurIPS and Other STEM Organizations (Oct 2018), I learned that the American Statistical Association (ASA) used an independent third party for receiving reports, Ombuds Service.
During my research for JupyterCon, I contacted the consulting firm that handled ASA’s Ombuds Service, ProActive ReSolutions. It was an informative and educational call. While I thought it would be a highly valuable service for managing CoC reports during the conference, I did not advocate strongly for it because I did not think I would be able to get approval to fund it. It is costly, even at a non-profit rate. The ASA is funded by membership dues and had been involved in high-profile incidents of sexual harassment. It was understandable why the ASA contracted the Ombuds service.
Here are some key takeaways from the independent service and how it functions:
- In most organizations, the same committee that does intake of incidence reports also does adjudication. Ombuds recommends separating intake and adjudication.
- Ombuds can serve as intakers of reports or provide training to organization members.
- Ombuds provides guidance on how to set up the adjudicating body.
- Ombuds provides training to the adjudicating body. (They can also provide training to decision makers, leaders and other members in the organization.)
- With Ombuds, a “reporter” can receive a response within one business day. They can also speak to the “reporter” and help clarify the incident and what options are available. (This is helpful for conferences where organizers/staff are overloaded.)
- Ombuds writes a report and sends it to the adjudicating body, preserving the anonymity of the reporter.
- Ombuds service provides a mechanism for concerns to be raised.
- Ombuds provides a final report to decision makers of the conference. Their goal is not to force change, but to bring transparency to the process.
The communities in the PyData ecosystem are primarily volunteer run. They are many and include PSF, NumFOCUS, independent meetup groups and more.
Provide sponsorship to the organizers so they can have training and effective CoC processes in place. Sponsors should have mechanisms in place to ensure that training has occurred, such as verification by certificate of completion.
Global Diversity CFP Day publishes an Issue Log on their website of incidents during their events and in their community.
As stated above, most of these communities are volunteer-run. Conference speakers are volunteers, organizers are volunteers. Coming from a place of compassion and empathy and acknowleding that people have good intentions will help us move towards our goal of creating a professional and inclusive community.
Change and Education
I have picked up significant experience in codes of conduct in the community in the past few years. There is still much to learn about effectively implementing codes of conduct to realize our goals of creating professional and inclusive communities. It is a work-in-progress.
- Reflecting On Two Years On The NumFOCUS DISC Committee by Reshama Shaikh (Apr 2019)
- Codes of Conduct for NeurIPS and Other STEM Organizations by Reshama Shaikh (Oct 2018)
- Managing Our Code of Conduct by Reshama Shaikh (Jan 2018)
- Python Software Foundation: CoC
- Python Software Foundation: CoC Work Group
- How to Respond to Code of Conduct Reports by Valerie Aurora and Mary Gardiner
- Big Apple Py for covering the cost of my Code of Conduct training
- Otter Technologies for existing and providing training opportunities on Codes of Conduct
- Donna LaLonde of ASA for connecting me to Suzanne Stewart of ProActive ReSolutions
- ProActive ReSolutions for taking the time to speak to me and share the importance of independent parties in CoC process
- Smarts Consulting for taking the time to speak to me and sharing the reference by Valerie Aurora and Mary Gardiner