Open Source Enshrines the Wrong Privilege
Within Open Source/Free Software, we repeatedly see a set of behaviours - hostile or toxic project owners, abusive relationships, aggression towards users, and complete disregard to users of the software. Some projects have risen above this and advanced the social behaviours in their communities, but these are still the minority of projects.
Many advocates for FLOSS have been trying to enhance adoption of these technologies in communities, but with the exception of limited non-technical audiences, this really hasn't gained much ground.
It is my opinion that these community behaviours, and the low adoption of FLOSS technologies comes back to what our Open Source licenses enshrine - the very thing they embody and create.
The Origins of Free Software
The story of Free Software starts with an individual (later revealed as abusive), who was frustrated at not being able to access software on a printer so that he could alter it's behaviour. This has been extended to the idea that Free Software "grants people control over their own lives and software".
This however, is not correct.
What Free Software licenses protect is that individuals with time, resources, specialised technical knowledge and social standing have the possibility to alter that software's behaviour.
When we consider that the majority of the world are not developers or software engineers, what is it that our Free Software is doing to protect and support these individuals? Should we truly expect individuals who are linguists, authors, scientists, retail staff, or social workers to be able to "alter the software to fix their own problems"?
Even as technical experts, we are frustrated when someone closes an issue with "PR's welcome". Imagine how these other people feel when they can't even express or report the problem in the first place or get told they aren't good enough, or that "they can fix it themselves if they want".
This attitude also discounts the subject matter knowledge required to alter or contribute to any piece of software however. I may be a Senior Software Engineer, but I lack the knowledge and time to contribute to Gnome for example. Even with these "freedoms" I lack the ability to "control" the software on my own system.
Open Source is Selfish
These licenses that we have in FLOSS all enshrine selfish and privileged behaviours.
I have the rights to freely access this code so I can read it or alter it.
I can change this project to fix issues I have.
I have freedoms.
None of these statements from FLOSS describe other people - the people who consume our software (in some cases, without choice). People who are not subject matter experts and can't contribute to "solve their own problems". People who may not have the experience and language to describe the problems they face.
This lack of empathy, the lack of concern for others in FLOSS leads us to where we are now. Those who have the subject matter knowledge lead projects, and do what they want because they can fix it. They tell others "PR's welcome" knowing full-well that the other person may never be able to contribute, that the barriers to contribution are so high (both in programming experience and domain knowledge). They design the software to work the way they want, because they understand it and it "works for me".
This is reflected in our software. Software that not does not care for the needs, experiences or rights of others. Software that pretends to be accessible, all while creating gated communities of control. Software that is out of reach of people, the same people that we "claim" to be working for and supporting.
It leads to our communities that are selfish, and do not empathise with people. Communities that have placed negative behaviours on pedestals and turned these people into "leaders". Software that does not account for the experiences of our users, believing that the "community knows best".
One does not need to look far for FLOSS projects that speak one set of words, but their actions do not align.
What Can We Do?
In our projects we need to go beyond preserving the freedoms of ourselves, and begin to discuss the freedoms and interactions that others should have with our systems and projects. Here are some starting ideas that I have:
- Have a code of conduct for all contributors (remember, opening an issue is a contribution).
- Document your target users, and what kind of experience they should have. Expand this over time.
- Promote empathy for those who aren't direct contributors - indirect users without choice exist.
- Remove dependencies on as many problematic software projects as possible.
- Push for improvements to open licenses that enshrine the freedoms of others - not just developers.
As individual communities we can advance the state of software and how we act socially so that future projects and users are in a better place. No software exists in a vacuum, all software exists to support people. We need to always keep in mind the effects our software has on others.