placeholder

/dev/lawyer

>> law, technology, and the space between

All content by Kyle E. Mitchell, who is not your lawyer.

You can subscribe via RSS/Atom or browse other blogs to read.

November 23, 2019

Reading the WeAllJS Code of Conductline-by-line and off-the-cuff

My friend Kat Marchán published Effective Codes of Conduct, a great piece about codes of conduct for online communities. The key takeaway for me was a link to the code of conduct for WeAllJS.

I decided to read that code of conduct, and figured it might be interesting to share my thoughts in raw, stream-of-reader-consciousness form.

Exactly how interesting should take well into account that I am not a part of the online community this policy comes from, and have no special moral or social credentials. I am in fact just another fallible fuck-up doing the best I can, which is not that great more often than I’d like. But rules, terms, and adjudication systems are my day-to-day, and I’ve spent a lot of time receiving wisdom on the matter, as a dry science. Also learning a few things the hard way, down in the trenches with law clients.

Whatever that’s worth, that’s what I hope to offer.

WeAllJS Code of Conduct

When Something Happens

Kat pointed out that the code of conduct starts with enforcement terms. I think that’s an important insight, too.

It remains unclear in my mind how much of the utility of codes of conduct comes from their mere existence, as a signal, and how much actually comes from the substance of their terms. Empirically, many early codes of conduct were rather thin on substance, in my opinion. But those early attempts were the bridge to broader code of conduct adoption. So intuitively, I think early codes of conduct were nearly all signaling, and later codes have improved largely by filling out the substantive side. But the safe answer is that codes of conduct offer both kinds of utility, and wouldn’t be so popular if they didn’t.

On substance now: Legal theory breaks justice, especially criminal justice, down into various components. Retributive justice requires that offenders suffer for their crimes. Deterrence focuses on promising punishments to dissuade others from unwanted behavior. Rehabilitation focuses on developing or correcting offenders so they can return and contribute to society. And so on.

Clear enforcement mechanisms speak especially to deterrence. They help to reinforce that consequence will follow unwelcome action. Touch the fire, get burned.

Clear enforcement mechanisms also speak to broader concerns of fairness and impartiality. Judges and others following rules laid down and made public before a crime was committed can point to those rules for legitimacy. This happens even when the rules malfunction, and compel what seem disproportionate or unfitting punishments. We see this from time to time in written opinions of United States judges forced to impose harsh sentences under rigid minimum-sentence laws, against their good conscience.

If you see a Code of Conduct violation, follow these steps:

Plain language, not legalese, real or affected. Could not be more in favor of that.

1. Let the person know that what they did is not appropriate and ask them to stop and/or edit their message(s).

I spoke too soon. The lexicography of “and/or” and “message(s)” reads pretty legal to my eye. I don’t think that helps. I’d edit out.

2. That person should immediately stop the behavior and correct the issue.

Nitpick: This is helpful to confirm, but not a step for people who see violations to follow.

I wonder here whether there’s a “timeout” rule further down that requires members on all sides of any conversation that leads to a conduct complaint to step away.

3. If this doesn’t happen, or if you’re uncomfortable speaking up, contact admins.

“If you’re uncomfortable speaking up” is very important here. Conflict aversion is real. Self-doubt is pervasive. Perhaps especially in communities intentionally welcoming those marginalized elsewhere.

I wonder how many complaints are actually resolved without recourse to admins.

4. As soon as available, an admin will join, identify themselves, and take further action (see below), starting with a warning, then temporary deactivation, then long-term deactivation.

Clear escalation ramp: warn, deactivate, deactivate longer. That’s important.

What’s missing here is how the admin verifies the violation, and what happens just because there was a complaint versus what happens when a complaint is made and then verified by an admin or another set of eyes. Maybe that comes later.

When reporting, please include any relevant details, links, screenshots, context, or other information that may be used to better understand and resolve the situation.

This is tough to get right. You don’t want issues dumped on admins, without context, with nothing more than a link or other pointer to an offending message. At the same time, I could see reports from some users going on at substantial length, largely as catharsis for the one reporting, at the expense of the admin, who then has either even more to read or a tough choice about whether to skim or skip.

I’d consider making an additional note, either that the usual rules about confidentiality of messages apply, or what special confidentiality commitments admins receiving reports make about the material they’re shown for enforcement purposes.

The Admin team will prioritize the well-being and comfort of the recipients of the violation over the comfort of the violator. See some examples below.

As above on point 4, I might clarify this language to account for any admin decision about whether the code was actually violated or not. As someone wrongly accused, you don’t want to see a policy that moves immediately and inexorably from complaint to punishment. A process that doesn’t answer the question “When and how will I be heard?” looks like a weapon.

Our Pledge

In the interest of fostering an open and welcoming environment, we as members of the WeAllJS community pledge to making participation in our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, technical preferences, nationality, personal appearance, race, religion, or sexual identity and orientation.

Typo: s/making/make/

Phrasing this as a collective pledge is an interesting choice. I could see it working well, if members are in fact aware that it is written so. Do new members of the community have to confirm or otherwise express that they join the group in making this pledge? Does that call to action call their attention to this part specifically?

Lawyers refer to lists of characteristics like this “protected classes”. Which characteristics make the list, and how they’re worded, always produces controversy, and often proposals for amendment, over time. California is well known for adding new or different categories, like sexual orientation, gender expression, and gender identity, in state law analogs to federal laws.

Our Standards

Examples of behavior that contributes to creating a positive environment include:

The phrase “positive environment” appears here first. I’d consider replacing with “open and welcoming environment”, to tie back to Our Pledge.

Presentation-wise, I like the choice to start with welcome conduct. I might go further, add items for the general topic of the community, like broad-ranging discussion of JavaScript programming, as well as language framing the list as the purpose of the list of unwelcomes to follow. “In order to get X, we don’t welcome Y.” “We don’t welcome Y because we really want X.”

I’d make this <ol>, rather than <ul>. Might want to reference a specific item.

Examples of unacceptable behavior by participants include:

Very specific. I imagine this list accreting over time, specific incident by specific incident, like a suite of regression tests.

At a higher level, if the concept of a code of conduct doesn’t immediately invoke a left-political association, I think this list will, starting from the point on “hipster racism” on. I’d be hard-pressed to say exactly why. I’m feeling this by association.

I’d also be hard-pressed to say what to do about it. Perhaps, for WeAllJS, the best answer is not to do anything at all. On issues intersecting the items of this, or more generally, WeAllJS may itself be left-typed. Perhaps it would help to call out some unfortunate left-type rhetorical tropes, like assuming the political support of members of historically marginalized groups. But in my experience that usually leaves an impression of studious balance for the drafters, while guaranteeing everyone else something to cringe about. Trying to generalize specific items could work, but often waters the rules down, and makes them harder to administer.

I’d make this <ol>, rather than <ul>, too. Might want to reference a specific item.

Scope

This Code of Conduct applies both within community spaces and in other spaces involving the community. This includes the WeAllJS Slack, its Twitter community, private email communications in the context of the community, and any events where members of the community are participating, as well as adjacent communities and venues affecting the community’s members.

Jurisdiction is tough. I could see the fuzzier parts of this rule—“involving the community”, “in the context of the community”—producing conflict.

If this has to be essentially open-ended, I would own that, and also set out plainly who will decide when the written rules aren’t clear. If it doesn’t have to be open-ended, I’d strongly consider turning it into an exhaustive list of specific venues, with a clear amendment process for adding new items. For example, if the group organizes a new event, an amendment could add that event to make clear it’s covered.

Depending on the violation, the admins may decide that violations of this code of conduct that have happened outside of the scope of the community may deem an individual unwelcome, and take appropriate action to maintain the comfort and safety of its members.

I was expecting a clarification that admins decide what venues involve the community or belong in the context of the community, but this is different. I now take it the answer to my question about open- versus closed-endedness above would be “open-ended”.

What admins will do here is also open-ended. If the upshot is that admins may apply the same ramp of graduated punishments—warn, deactivate, deactivate longer—for outside-venue violations, I’d spell that out.

Admin Enforcement Process

Once the admins get involved, they will follow a documented series of steps and do their best to preserve the well-being of WeAllJS members. This section covers actual concrete steps.

The word “well-being” appears earlier, in the clarification about reporter over violator priority. But “and comfort” is missing here, and it’s not clear how the combination, “well-being and comfort”, plugs into the other terms about welcome and unwelcome conduct.

I’d consider making explicit that the group sees a necessary-not-sufficient link between well-being and comfort of individual members and the desired collective outcomes for the community as a whole.

Nitpick: If “a documented series of steps” is the series of steps documented in the list that follows, I’d clarify that.

For further information/details on values and practices that admins will generally apply when enforcing the Code of Conduct, refer to the full enforcement document.

Another page for my reading list. Without diving into it, I wonder whether separating the enforcement philosophy came out of recognition that the audience is different. Code of conduct is for participants. Enforcement policy is for admins, but published for transparency. Like a footnote.

Contacting Admins

You may get in touch with the WeAllJS admin team through any of the following methods:

In Slack, ?admins will list the names of all current admins.

Lots of different ways. Could be a burden on admins.

I suppose folks could try to report issues anonymously via e-mail. It’s unclear whether admins will accept anonymous reports, or reports from non-participants on participants’ behalf.

Further Enforcement

If you’ve already followed the initial enforcement steps, these are the steps admins will take for further enforcement, as needed:

1. Repeat the request to stop.

2. If the person doubles down, they will be removed from the channel and given an official warning.

I take it “official warning” means “warning from an admin”.

3. If the behavior continues or is repeated later, the person will be deactivated for 24 hours.

4. If the behavior continues or is repeated after the temporary deactivation, a long-term (6-12mo) deactivation will be used.

Does the admin decide on a period from six to twelve months on the spot? Do they document their reasons?

On top of this, admins may remove any offending messages, images, contributions, etc, as they deem necessary.

Important. There’s not much predictability on offer here. But there’s value in clarifying what mechanisms are on the table.

Admins reserve full rights to skip any of these steps, at their discretion, if the violation is considered to be a serious and/or immediate threat to the health and well-being of members of the community. These include any threats, serious physical or verbal attacks, and other such behavior that would be completely unacceptable in any social setting that puts our members at risk.

Again, I’d avoid “and/or”. Maybe that’s coming more from a technical || versus ^ mentality, but either way, the vibe is technical.

Nitpick: The document mixes “member” and “participant”. I’d pick one and use it throughout.

Members expelled from events or venues with any sort of paid attendance will not be refunded.

This is important ground to cover, but probably belongs in terms for the events themselves. Pointing back to this policy could feel like a gotcha. Especially if the event promulgates its own code of conduct.

Who Watches the Watchers?

Admins and other leaders who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the community’s leadership. These may include anything from removal from the admin team to a permanent ban from the community.

What’s “the community’s leadership”? How do they make decisions?

Enforcement Examples

The Best Case

The vast majority of situations work out like this, in our experience. This interaction is common, and generally positive.

Alex: “Yeah I used X and it was really crazy!”

Patt: “Hey, could you not use that word? What about ‘ridiculous’ instead?”

Alex: “oh sorry, sure.” -> edits old message to say “it was really confusing!”

The Admin Case

Sometimes, though, you need to get admins involved. Admins will do their best to resolve conflicts, but people who were harmed by something will take priority.

Patt: “Honestly, sometimes I just really hate using $library and anyone who uses it probably sucks at their job.”

Alex: “Whoa there, could you dial it back a bit? There’s a CoC thing about attacking folks’ tech use like that.”

Patt: “I’m not attacking anyone, are you deaf?”

Alex: “/admin hey uh. Can someone look at #javascript? Patt is getting a bit aggro. I tried to nudge them about it, but nope.”

MxAdmin1: <joins #javascript> “Hey Patt, admin here. Could you tone it down? This sort of attack is really not okay in this space.” >

Patt: “Leave me alone I haven’t said anything bad wtf is wrong with you.”

MxAdmin1: “/remove @patt”, “/msg @patt I mean it. Please refer to the CoC over at wealljs.org/code-of-conduct if you have questions, but you can consider this an actual warning. I’d appreciate it if you reworded your messages in #javascript, since they made folks there uncomfortable. Let’s try and be kind, yeah?”

Patt: “/msg @mxadmin1 Okay sorry. I’m just frustrated and I’m kinda burnt out and I guess I got carried away. I’ll DM Alex a note apologizing and edit my messages. Sorry for the trouble.”

MxAdmin1: “/msg @patt Thanks for that. I hear you on the stress. Burnout sucks :/. Have a good one!”

This is the best I have for understanding the boldface clarification on priority at the top. Is the gist that reports of misconduct will be treated as misconduct, without an independent assessment by admins?

The Nope Case

PepeTheFrog🐸: “Hi, I am a literal actual nazi and I think white supremacists are quite fashionable.”

Patt: “NOOOOPE. OH NOPE NOPE.”

Alex: “JFC NO. NOPE. /admin nope nope nope @ #javascript

MxAdmin1: “👀 Nope. NOPE NOPE NOPE. 🔥”

PepeTheFrog🐸 has been deactivated.

Examples are good!

I would provide a tiny bit of explanation for each example, perhaps just a sentence with a link or small quote from Our Standards, to make clear what rule of the code of conduct made the responses of participants and admins appropriate.


Some things I was looking for, but didn’t see:

Your thoughts and feedback are always welcome by e-mail.

more articlesrevision historyback to top