Freedombone Blog

Freedom in the Cloud

Codes of Misconduct

There has been debate about codes of conduct and what they should or should not contain for at least a decade. For Freedombone I took the one that Debian was using at the time and then modified it based on experience. One thing which came to light from discussions was that unless you specifically list the kinds of behavior that constitute a violation then there's enough ambiguity that some people won't be confident about participating.

Recently I accidented upon The FOSS Code of Conduct. It has a few good points such as reciprocity and non-discrimination, but in other regards it's like the antithesis of what most codes of conduct try to do. Also see the video here.

The thing is, the entire history of FOSS is political, so trying to be "apolitical" misunderstands the whole exercise at a very basic level. FOSS emerged from the battle with software owners, who were generally corporations such as IBM and Microsoft. The whole idea that software was something which could be owned was rejected by many early FOSS people, and instead they sought to create a global digital commons in software which was universally accessible without artificial price barriers. The early view was that software was just a type of mathematics, and that nobody should own, or have exclusivity over the use of, particular types of math. This was a very political project from the outset.

The third section of the FOSS Code of Conduct is especially misguided. The original remit of FOSS was precisely to create equality of access to software, regardless of status or ability to pay. Many people have benefited from that principle who otherwise would not have been able to gain IT skills. In the 1980s and 90s software such as compilers, spreadsheets and other kinds of utilitarian things were seriously expensive and in most cases definitely beyond the budget of any average person who wanted to tinker and learn.

On the fifth point, judging things is always required and in the real world you can't escape from that by deploying platitudes. If you're unwilling to make a judgement then probably you shouldn't be writing software in the first place, because myriad decisions derived from your own perspective are required along the way. Imagine if Stallman had not been judgemental about a printer manufacturer, or if FOSS developers in the 2000s had stoically refused to be judgemental about the behavior of the people running Microsoft. Don't be so judgemental! Just let Bill Gates fuck you over! It's easy to see how ridiculous and practically counterproductive that would have been.

The "victim mentality" section which talks about "weaklings" is just bizarre, and doesn't really belong in a code of conduct. This on its own would stop me from participating in any project which adopted this CoC. I guess the author just needed to let off steam.

Section seven posits that human value is a market and that "the market is never wrong". It's an overtly political statement positioning the author as a Thatcherite market fundamentalist (as per her famous saying "you can't buck the market"). It's easy to think of numerous historical examples where "the market" (i.e. popular opinion) was badly wrong about this. Was Van Gough poor for his entire lifetime because he was valueless? If other people are unwilling to give you money then perhaps this isn't because you are inherently without value but that other people are similarly impoverished and have nothing left over to give, or perhaps like the case of Van Gough they are too blinded by a prejudice about someone with a mental illness to see the value of their work.

Beyond this particular code of conduct it's not especially unusual for people in the FOSS world to either claim to be apolitical or try to be that. The desire to transcend the grubby business of making concrete decisions in the real world (i.e. things which may carry non-trivial consequences) comes from the need to both avoid flak and to try to maximize consensus. Often projects can only succeed if significant numbers of users engage with it and are prepared to provide feedback. But there's always a limit to how far consensus building efforts can go. When the rubber meets the road there are always arguments, and some of these differences are over axiomatic points of view. Rather than attempt to avoid that it's better to be realistic about it and have a policy with a standpoint which may not be universal but covers enough ground to facilitate rough consensus among a like-minded developer and user group.

Another aspect which the above CoC and video highlights is that it's really advantageous to know what your own politics is and be fully self-aware of that. Otherwise you can end up looking foolish by claiming to be "apolitical" and then launching into a highly political rant about "the market". It's a common problem, but if you want to up your game when it comes to creating group policies or debating in general then it's really essential.