Recommended CoC improvements

For health and work reasons, now is quite poor timing to write a thoughtful response to the recent core developer suspension. I plan to do this in a few months though. What I can do right now, however, is ask a question:

A while back I wrote my thoughts on a long discussion related to another CoC enforcement. At one point, @willingc mentioned that Jupyter’s CoC enforcement guide, which was carefully crafted by the community, has a mechanism for a mediation process whereby both parties may communicate with each other with the help of a mediator.

I think this is a fantastic idea and, in lieu of copying US foundational legal code to guarantee due process, is the best way in most cases to handle such issues.

What are our thoughts on that? Also, practically speaking how can the process be changed?

I fear that if nothing is done the situation will degrade further. A recent study of 1.3 million people (mostly US) found that over the past two decades there is a stark decrease in people’s willingness to express themselves openly. I don’t want our community to be afflicted even more by this trend and potentially make people feel unwelcome by virtue of ideological conformity.

I really love our community and wish for our processes to be optimal.

22 Likes

I do think it’s a very good idea as well.

Thanks for the link, it’s an interesting read. As the authors says, more research is necessary to know precisely why and when the decrease occurs (it might be that people are less willing generally, or that they find themselves more often in situations - such as social networks - where they’ve never been willing to express themselves openly).

For reference, the questionnaire used seems to be available here. A subset of 5 items was used to compute the willingness to defend beliefs publicly score. If I understand this correctly, these items are the following:

  • “When I am in a group of strangers, I am not reluctant to express my opinion openly.”
  • “If I disagree with a superior on his or her views, I usually do not keep it to myself.”
  • “I speak up in meetings in order to oppose those whom I feel are wrong.”
  • “I tend to express my opinions publicly, regardless of what others say.”
  • “As a rule, I strongly defend my own opinions.”

Regardless of how solid this study is, I fully support the idea you put forth above.

6 Likes

Generally, I find unproductive (and unsafe) to discuss any “political” themes in projects with CoC. But recent story and following discussion lacks, from my point of view, very basic and simple question. Thus, my 2c below, without any further participation (unless question seems unclear).

Probably it sounds a bit heretic here, by from my experience it looks like missing code of conduct is the only way to improve code of conduct. (I’m deeply sorry, @ofek, but I’m not share your optimizm (: ) AFAIK, CoC was introduced after 20+ years old history of the project. Hardly success story of the Python language related in any way to it’s CoC. On the other hand, due to it’s introduction we recently lost several core developers whose expertise was extremely helpful. E.g. Stefan Krah, now Tim Peters (I don’t understand, why SC members assume that he will continue to participate after this “vacation”; Steven D’Aprano “3 month suspension” seems eternal).

For me it’s not clear what project gained from this. Could someone explain benefits of last “suspension”? (Preferably in some qualitative metric here, e.g. more code was reviewed, etc.)

2 Likes

I think there’s a lot to be gained from having a code of conduct, and trying to measure it in terms of stuff like “more code was reviewed” is sort of missing the point. It’s good to have a set of expectations for community participation and a clear statement of values.

In light of recent events, I have serious concerns about the process by which the CoC is enforced, and also to some extent about the underlying policies involved (e.g., the balance between transparency and privacy). But it would be a mistake to say “well, Python was doing great until we had the CoC and now it’s led to problems”. Part of the point of a CoC is to prevent problems that were probably not obvious before, and to guard against problems that may come. A CoC on its own is not enough to ensure a healthy community but I think it’s a good thing in principle.

11 Likes

Couldn’t they implement a ‘cool-off’ period from discuss.python.org and mailing lists? Inform individuals that their comments are attracting too much moderator effort, warranting a temporary cool-off—starting with one week. If their posts continue to require excessive moderation, this period could be extended to two weeks or even a month.

Three months, including a suspension from CPython GitHub, is a long time for comments or arguments that, while upsetting to some, aren’t clear-cut violations to everyone.

5 Likes

I’m not sure if this is entirely true, it is in poor taste to continue slinging mud in the general direction of someone who’s suspended, and this thread is not about them. Let’s give it a rest.

4 Likes

If you think my comment is out-of-line, flag it. I just want to point out that AFAICT none of these suggestion here would have had any effect on any of the high-profile suspensions. (well, I guess except for the suggestion to remove the CoC)

The main suggestion is the encouragement of a new optional mediation step before other forms of escalation. Communication with the aggrieved parties directly sets up a much more hospitable interaction and is how Homo sapiens have done things until very recently. Although, I would be interested in hearing your reasons for trepidation and the logic behind perceiving both types of interactions as the same!

This also seems like a reasonable process change!

How would this happen, technically? I’m unfamiliar with governance changes.

1 Like

Oh, I just read the actual wording in the Jupyter CoC guidelines.

That’s just a cut-down variant of the general CoC enforcement while only containing a single mediator instead of the entire CoC-WG and no public formal resolution (at least not necessarily).

I understood mediation to explicitly contain a (virtual) meeting between the two parties, which IMO is a bad idea for anonymous flags by various people against a single person.

Sure, such a mediation process is not as useless as I originally thought. But I strongly doubt that it would have done anything based on the fact that these were clearly strongly held believes on the core-devs side. (and with many reporters, it also seems unmanageable for a mediator to act upon, but that depends on precise numbers we don’t know)

Based on Python Software Foundation Code of Conduct Working Group Enforcement Procedures - Python Software Foundation Policies

It seems this is the procedure:

When discussing a change to the Python community Code of Conduct or enforcement policies, the Python Software Foundation Code of Conduct work group will follow this decision-making process:

  • Brainstorm options. Work group members should discuss any relevant context and brainstorm a set of possible options. It is important to provide constructive feedback without getting side-tracked from the main question. Brainstorming should be limited to 3-7 days maximum.
  • Vote. Proposed changes to the Code of Conduct will be decided by a two-thirds majority of all voting members of the Code of Conduct work group. Work group members are listed in the work group charter. Currently active voting members are listed below.
  • Board Vote. Once a working draft is in place for the Code of Conduct and procedures, the Code of Conduct work group shall provide the PSF board with a draft of the changes. The PSF board will vote on the changes at a board meeting.
1 Like

This is a good idea in principle, but puts a lot of pressure on whomever gets chosen to be the mediator in a given case. Who is a suitable neutral party? Who has the right qualifications, both as a mediator and as to understanding the issues involved? The Jupyter process lets either party decline to participate, or decine to approve the mediator, or even decline to accept the report, which means it has a pretty good chance of not being very useful. Does anyone know if they’ve ever actually invoked that option?

4 Likes

Sorry, for last bit of off-topic from me, but it seems to be The Answer to my question, right?

That was expected and is exactly my concern: “there is a lot of good”, but… it’s hard to measure in numbers. While negative impact for the project - is obvious, it can be measured.

I can’t confirm this thesis at least for the latest case by some quote(s?) from the public discussion. Can you?

1 Like

Let’s focus hard on coming up with tangible process improvements that we might propose to the governance folks. Everything else can be other threads.

Getting rid of the CoC outright is a nonstarter so let’s not talk about that as a viable path forward. Even SQLite has a Code of Ethics which is just an excerpt from the Rule of Saint Benedict. It includes wholesome things like “Do not nurse a grudge”, “Utter only truth from heart and mouth” and “Hate no one”.

What I would consider on-topic would not just include process changes but also good rules for members that might be found in other communities. For example, HN is basically the best place for charitable discussion because of their guidelines, particularly this one:

Please respond to the strongest plausible interpretation of what someone says, not a weaker one that’s easier to criticize. Assume good faith.

I would be in favor of adding that explicitly to our CoC.

6 Likes

While I appreciate that all ideas should be on the table, I know that due to lack of volunteers, only the simplest have a chance of being adopted. So I’m going to offer one suggestion for a mechanism change that doesn’t involve a tremendous amount of work from staff.

The current CoC WG technically has no power itself to enact bans or other censures, and can only recommend actions. That said, it seems that its recommendations are taken quite seriously, and are rarely ignored or modified. At the same time, it appears that the WG is a self-moderating body. Its members are not elected and have no term limits. And in order to become a new WG member, it appears that existing WG members must agree to accept the member. This means that it has the potential to become somewhat monocultural.

Might it make sense instead for the members of the WG to:

  • Have a term limit.
  • Rather than be ratified by the existing WG members, new members be appointed by the Board by maybe majority internal Board vote publicly every so often after applying.

You can extrapolate more complicated arrangements from this that would probably do the job even better, but even this might go a long way towards introducing more viewpoints into the WG.

I also recognize also that it’s a bit of a thankless job, and may not have people climbing over each other to apply. Perhaps a stipend would help in that regard.

8 Likes

The suggestion for mediation and to assume good faith both seem good to me. I’m not sure either of these would have made much difference to these recent events, but either way they seem like common-sense ideas that would be beneficial.

Beyond that, in terms of the discontent that has been generated by recent events, I have to say frankly that I’m skeptical much improvement will be perceived without a change in what is expected of the moderation/enforcement team rather than what is expected of users. So I’m a bit skeptical that what is proposed here will alleviate these recent concerns unless there is some kind of buy-in from the mod-team/CoC WG/etc., and/or acknowledgement that there is room for improvement on their end, and not just revisions to user-oriented guidelines.

As an example, what I do not see in existing policy or practice (although maybe it’s somewhere I didn’t look) is any kind of statement that transparency in governance/moderation is considered a primary virtue and will be given according consideration. Many other things in the CoC are, of course, also primary virtues, so this doesn’t make anything any easier, because it means moderators will face the challenge of balancing competing needs (which of course they already do!). But so far in the responses I’ve seen from those who seem to know things, I don’t get a sense of an explicit, public intent to share as much relevant information as possible, up to the point where it would actually conflict with other goals.

Again, as an example, it seems quite possible for things like ban announcements to be accompanied at minimum by statements like “X complaints to the CoC WG from Y distinct users indicated that statements by ExampleUser were causing harm in the community”. I think this has little risk of compromising anyone’s privacy, while potentially (depending on the numbers) going a long way toward building community confidence that whatever action was taken had meaningful community support.

I want to add that the reason I keep saying “recent events” is that I’m aware that crafting a CoC, moderation policies, etc., are tasks that should be undertaken with a wide perspective. Whatever the situation is and whatever the processes are, they are not just what has happened over the past few weeks, but include the totality of what this forum has encompassed over time — including a community that overall functions quite well compared to many others. It would be a mistake to make rash changes in the heat of the moment, unduly swayed by particular events. But of course, at the same time, we should always be on the lookout for ways to learn from any circumstance that comes along.

3 Likes

Tangible process improvement: Rethink the tone & objectives of enforcement in comparison with Jupyter’s. Does the current enforcement document reflect the common goals of the community?

The CoC enforcement manual likely reflects the perspectives of its original authors, which in turn shapes how it is enforced.

For context, ChatGPT’s summary comparison between the two highlights this distinction:

The Python Software Foundation document is formal, procedural, and focused on objective enforcement, while the Jupyter manual is more personal, empathetic, and emphasizes restorative practices and community well-being.

4 Likes

Please stick to the topic.

3 Likes

At this point, we feel that many sides in this discussion have stated their various positions in enough various ways and various places. Thank you everyone for all your feedback, it has been heard and responded to by the community, moderators (Guidelines - Discussions on Python.org), CoC team, steering council (Inclusive communications expectations in Python spaces), and PSF board (Python’s Supportive and Welcoming Environment is Tightly Coupled to Its Progress). Further discussion about this is proving unproductive, and so will be considered off topic. If you are concerned about a moderation decision, you can privately message the @moderators group on the forums, or contact the Code of Conduct team.