Its only somewhat recently (probably within the last fifteen years, starting with Darwin at Apple) that organizations with large marketing budgets have tried to take free and open source software and deliver it to mass amounts of people. This aligns fairly well with the overall goal of free and open source software, which is mostly a Darwinian one - to show that free software is the best kind of software, and will come out on top as the majority and dominant ideology in the clash between free software and non-free software.
The question for a lot of organizations is … okay, this is great, but how?
You see, there’s a trend I’ve noticed and I haven’t quite been able to put a name to it. I wrote a paper on it last semester for my senior communications project, although I kind of wish I spent a little more time devoted to this particular topic that I’ve been thinking of.
And then this blog post from Martin Owens came along which got me thinking about it again.
My theory is this. As the breadth of the audience that you are trying to reach goes up, your community participation and involvement goes down. And then if it really is that this is the rule rather than the exception, then I think it is impossible to achieve the goals of “deliver free software to the masses” and “make it built entirely be a passionate and active community of volunteers” at the same time.
I call this the “Apple / Google / Canonical” Model of Open Source or Free Software. Darwin and Android are still Open Source projects. Ubuntu Touch is Free Software. But its a different kind of Free Software than say, GNOME or KDE. As far as most people should be concerned, Open Source and Free Software has kinda already won the Darwinist struggle. Android makes up the majority of the smartphone market, Apple is growing a huge amount in the desktop market. iOS has Darwin at its core.
Its a bit of a letdown though, and somewhat anti-climatic, because all of the community who were so vocal and passionate about free and open source software were not really involved in any of this to a great extent.
Sounds pretty cynical and I wish it wasn’t true, and I’ve been looking for ways to make it untrue, and I’m sure every company in this position has as well. I mean, what company in their best shareholder’s interests wouldn’t want free no-strings-attached labor to achieve their goals? Well, maybe there are strings attached.
Somewhere, at some point on the line, societal forces caused the community to stop becoming an “asset” and start becoming a “risk”. The kind of body required to sustain such a massive distribution effort in such a complex market can’t be a charity forever. Somebody has to make money or at least break even, otherwise its just not worth it. Here are some risks that the “community” might start posing if you’re a big company:
- No accountability mechanism: When you are a company spending money on a project, having inputs to that project that you can’t fire and cut off is a kind of scary prospect. It really messes up your broader business plan if your engineering department comes back and tells you that they can’t really predict the future of your codebase because they don’t have full political control over it. Sure, if someone keeps on screwing up, you can just cut off their commit access and ignore their patches, but what are the PR repercussions of doing that? And then what if you have zero room for risk because your system is continuously deployed? Who takes the blame when someone else screws up and your company distributes that software? Who are people going to sue when things go wrong?
- Trade secrets and competition can’t also be transparent and open: One of the most effective ways to compete with someone is to take them by surprise. Do lots of R&D to figure out what their shortcomings are, come up with something and then right when they don’t expect it, boom, sweep the market from underneath their feet. This is how every company ever is successful. If you want to reach a mass market and unseat the people who already have the lion’s share of the pie, this is how you do it. But then how do you involve your community? Well, you don’t. You can’t just be open and transparent about it unless you’re okay with your competitive effort being largely ineffective. You can go the ”get people to sign an NDA” approach, but even that has its risks. One screw up by that other person and you’ve lost a huge competitive opportunity. And then your legal recourse is pretty weak - maybe you can get an injunction but there are jurisdictional issues and by the time you get one its already too late. Maybe you can sue that person, although they’re probably not going to be worth as much as the potential opportunity you’ve just lost. Better not to be open about anything
- People don’t care about politics: Sad, but true. Most people don’t know that the world runs on open source and free software. People don’t know that they’re probably holding something which is largely comprised of open source software. To them, its just a phone, it runs apps, it looks cool and cost me $0 on a 24 month contract. I’m sure people would like to care about the politics, but we just don’t have time to do that. Its basically the whole reason why we have representative government in most countries - politics is hard, and I can’t care about everything because I have a job to get to. The best way to get free software in the hands of everyone is by creating products that work in our existing market system. Politics just won’t work. And it might even turn some people off.
- Community can’t keep pace with business developments: In a business you work 9-5. You have mailing lists internal to the business You talk to people face-to-face and figure out the next solutions there. Businesses just don’t have time to keep consulting with their community counterparts, and the community has a job to go to every day and needs to focus on their family or education. They aren’t in the same room. The only way to fix this problem is to put them in the same room, and then pay them so that they don’t have to worry about going to some other job. Then everyone can work on free software! Wait, nevermind.
So after all of this, I’m really not surprised that I keep on seeing this trend appear over and over again. I want someone to prove me wrong, but I suspect its going to be a very long time before that ever happens.
The good news is that it appears spreading free software to the masses really is an attainable goal. The bad news is that its not really going to be the spirit that we all expected. But I think some trade-offs just need to be accepted.