/ community

Community Structure

I'm noticing that Codes of Conduct for software projects and social network systems remain as controversial as ever. At present I think the general consensus, as described in books such as Jono Bacon's The Art of Community or Pieter Hintjen's Social Architecture is that as an initial baseline you need to start with a FOSS license, preferably an OSI one and not a roll-your-own attempt. Then if the number of contributors or community members gets beyond a handful - not so common for software projects but easily happens with social network nodes - you probably need something like a Code of Conduct.

The purpose of a Code of Conduct as I understand it is to have a semi-formal method for removing disruptive or "toxic" community members. Such people can quickly become an existential threat to the continuation of a project or the viability of a community group. In the book Rules for Revolutionaries it's also described as "the tyranny of the annoying", whereby particular individuals can hijack the conversation and either consciously or unwittingly break up trust relations which might have taken substantial time and effort to build.

But at least within social network systems I'm starting to think that codes of conduct aren't the way to go. First and foremost is that very few people ever actually read long formalized constitutional documents which amount to not much more than "splaining" things which are already known or obvious. If it's a copyright dispute then lawyers will definitely want to read such documents, but for the average user signing up on a social network server it's very unlikely and they're just going to click "agree" to literally any terms. If you feel that you need a Code of Conduct for a social network then you probably have too many users on your server and should consider encouraging people to set up their own and then federate.

To summarize, I think many of the disputes over Codes of Conduct (or "honor codes" as I like to call them because that has more anthropological relevance) is actually isomorphic to network topology and permissions structure. Fix the topology and have a technical permissions system with requisite variety and I expect those disputes will largely go away. Within a suitably federated system if you have some fundamental argument with other users on the same server then you can either run your own server and set your permissions accordingly or move to a different server whose sysadmin has a greater level of affinity with your viewpoint.

Of course the proprietary silos such as Facebook and Twitter don't have the ability or desire to federate and so the problems of communities with wildly opposing views constantly stepping on each other's toes will continue to happen, together with more calls for formalized declarations and censorship systems. But in the free world we at least have better options. The need for arbitrary censorship disappears if sufficiently good permissions controls are available either at the individual or affinity group level (you could subscribe to some pre-made set of permissions).