Once upon a time, a movement started. Richard Stallman observed that he was better served by having the freedom to modify and share software, and he codified that observation in a manifesto, in several licenses over time, and in the software that he and others built that were distributed under those licenses.
Thirty years have passed.
Now, the free software movement consists of more than just one group. There are people who still work on free software, and advocate for it, because they are better served by free software, because it benefits them directly. But there are also those who work on free software because of the benefits to their community. There are still more who work on free software because of the benefits to the projects themselves. And further people work on free software just because they’re paid to do it as part of their job, or because it will look good on their CV.
I think it’s time we stopped drawing lines in the sand. I think we need to expand the free software movement to these new groups that may not be recognized by a lot of us. We need to understand the motivations that make sense to those people, and we need to start to accept them.
A lot of people who are already part of the movement want to help free software because it’s directly beneficial to them. There’s nothing wrong with this kind of advocate, but their perspective means they have a different view of things than others.
- I should be able to use software under any conditions I choose.
- I should be able to share software with people with whom I collaborate.
- I should be able to fix or augment software however I like.
- I should be able to distribute those fixes and augmentations to people with whom I collaborate.
These are for community-minded people who want to work on free software that benefits the people around them. “Community” could mean almost anything, from the extremely small community of a family unit, to the extremely large community of “all humans.” The motivating factors are the same:
- Members of my community should be afforded the right to use software under any conditions they choose.
- I, and others, should be allowed to share software with my community, so everyone can benefit from it.
- Members of my community should be allowed to fix and augment software to fit their needs.
- I, and others, should be allowed to distribute those fixes and augmentations, so that my community may benefit from them.
Some people work on projects that are free software only because they want that software to be better.
- People should be allowed to use software under any conditions so they may better test the diverse functions of the software.
- People should be allowed to distribute copies of the software to better enable the above testing goal.
- People should be allowed to modify software so they can make it better.
- People should be allowed to distribute modified copies of software so they can better test their improvements.
The last group of free software developers and advocates have slightly different motivations, but they still need a framework to enable them to act them out.
- People should be allowed to use software under any circumstances so they can accomplish business goals.
- People should be allowed to distribute copies of software to achieve word-of-mouth recognition of the software and its contributors (including corporate sponsors), as well as to solicit contributions from the community and other companies.
- People should be allowed to modify software to better fit their business needs, and to give them a platform for recognition as a positive community force.
- People should be allowed to distribute modified software so they are better recognized as benefactors to the community, and to solicit further improvements from the community and other companies.
How these groups play together
You probably noticed that I formatted each list of motivations along the lines of the original “four freedoms” document set out by Richard Stallman. Well, that’s all well and good, but Richard has a lot of opinions that get conflated with his written essays, so I have not restated those points here. I’m saying here today that I fully accept every single one of these groups as potential allies in the struggle to bring free software to mainstream awareness. No matter what your motivation for building up free software, I welcome your contributions.
Now, I want to be clear that I’m not negating my past position on companies who make token efforts towards free software – I still do not suggest using GitHub, Facebook, or Google services, because they are all based on non-free software. But I’m saying that we should be welcoming of the contributions that they make nonetheless, and that we should also accept the contributions of the other groups.
For example, while many die-hard free software advocates are currently skeptical of people motivated largely by community forces, we should start to embrace them instead and work towards their goals in conjunction with our own.
Likewise, people who are working on free software solely so they can have the tools they need to accomplish their own goals should be welcomed with open arms, and invited to join in the grander advocacy efforts.
I worry that too much of the free software movement has been trained to reject these groups, to be distrustful of corporations, to be dismissive of people who are utilitarian in their contributions. I hope we aren’t too far gone to rescue this movement that needs to be so much bigger than it currently is.