undefined is not a function

Delivering Free Software to the Masses

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?

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.

Like this:

LikeLoading...

Related

Post navigation

19 thoughts on “Delivering Free Software to the Masses”

I think your first point gets it precisely backwards–the problem isn’t that people don’t want to depend on a community. Canonical isn’t afraid to depend on Debian. As long as you have faith that the community will be active (which is no different than having faith that a company won’t go bankrupt), it’s better to depend on a community than a single vendor who will then have power over you.

And that is the crux of it. Canonical depends on Debian, but doesn’t want to be Debian. Just like every other company big enough to bring free software to the masses, they want to be the single vendor who has power over other people. If other distros refuse to adopt Unity or Mir, from Canonical’s perspective that’s good–that just means that any effort they put into improving those projects will benefit only Canonical and their users and customers.

“Canonical isn’t afraid to depend on Debian. As long as you have faith that the community will be active (which is no different than having faith that a company won’t go bankrupt), it’s better to depend on a community than a single vendor who will then have power over you.”

I think the last part of your statement is certainly true, though I’m beginning to question more and more whether or not the first part really is. Its pretty easy to look at the existing “company”/”community” relationship from the perspective of a “contribute”/”defect” lens – how much are you willing to take compared to how much are you willing to give. What I’m explaining in this post here is another take on that, which is how much do you want to control / how much do you want to be controlled.

Free software communities work on a symbiotic relationship both those areas and other ones too. What I think we’re starting to see now is that not only does it become against your best interests to “contribute” to the pool of community effort, but it also becomes against your best interests to have the community effort contribute to your pool as well, because allowing them to do that necessitates some form of control over your business.

For example, it is highly unlikely at this point that my performance-enhancing patches are going to be accepted into the Ubuntu Raring release. Why? Because Canonical has forked compiz for raring[1], de-prioritized its development and has told me that they will not accept any new community patches. The reason? Because they can’t have any accountability over that contribution anymore. It is in their best interest to maintain complete control of their codebase, even it it means shutting everyone else out no matter how good or bad their contribution is, because it guarantees them some stability and peace of mind from others interacting with their business goals.

We also see this in Google and Intel as well. Google and Intel have been notorious for running their open source projects (Android and Tizen) as code dumps, there for other people to look at, maybe to fork, but never to touch directly. Not only do they not want to get involved in upstream, they don’t want to have anything like an upstream, and they don’t want to be one either. Canonical is largely going the same way, and for the reasons I explained, its because its the best way to achieve their goals.

Since there seem to be some times when large companies insist on accountability, and other times when they’re satisfied depending on community (There is still Canonical and Google work that is downstream from the Linux kernel, right?) can we build any sort of theory that explains which way they’re looking at any given time?

Would it be unimaginable for Canonical to act in exactly the same way towards compiz if it were developed by another big company? It’s a piece of code that they (apparently) feel they’ve tested to the point that it works well enough, and they (apparently) aren’t interested in new features. In that case, although I’m sure your performance enhancing patches are good, it might make sense for them to stick with what they already know works.

Darwin as a ‘free software project’ has been dead in the water almost since it’s inception. (which was intended by Apple). Sure, Darwin is the core of MacOSX / iOS… but most of what is above Darwin (in MacOSX/iOS) is very proprietary / locked down… Darwin on it’s own is essentially useless, you don’t even get ioKit (so you are screwed on drivers, as well). So saying;

“Open Source and Free Software has kinda already won the Darwinist struggle…”

but it Isn’t actually true – since Darwin is just one piece of a largely proprietary platform ~ if anything, in regards to Apple, FOSS really didn’t win at all…I think Darwin is a pretty bad example for this and other reasons.

I do however agree with some of the challenges you mention about companies that try to work with community efforts, for the most part. it’s a hard position to be in, and i think RedHat is one of the only companies that does it well, for the simple fact – they largely built the linux ecosystem anyway.

just my 2 cents.

OT/btw – Glad to hear that you are really focused on school these days, you look pretty happy in your blog photo too – it’s great to see! (especially, when considering the odd old post, where things didn’t seem to be going well). Best of luck, Sam.

Yeah, I think my usage of terminology made my argument a little confusing. To differentiate:

– Darwin, as in Darwin the project (and I guess also in spirit encapsulating WebKit). Both are still BSD and LGPL licenced to this day, although Darwin is not that useful.
– Darwinist, as in the critical-theory “Charles Darwin” way of looking at things, eg, we have a world full of competing ideas, concepts or being, struggling to come out on top with a limited pool of resources.

really ? I thought red hat was the single largest reason for the poor state of linux adoption on the desktop. On servers, it was first come first serve and it could have been anyone else ( if ubuntu had existed then, RH wouldn’t exist today).

RH has made a lot of money off the backs of free s/w. They put none of that to work to improve linux ( sure they threw it at gnome), even claiming that desktop linux was a no go; they were merely rationalizing their incompetence. Google has changed that perception with android and chrome books, proving RH wrong.

http://fedoraproject.org/wiki/Red_Hat_contributions in addition to GNOME, Red Hat funds development of lots of projects, including the linux kernel, the Gnu C Compiler family, the IcedTea project (which makes it easier to build and install the OpenJDK free software Java implementation), OpenOffice, LibreOffice, and others.

Red Hat has done tons to improve Linux, they just failed to make it as easy for newbies as Canonical did.

I mean is just printing, why try to make it something proprietary? Ubuntu on the other hand will stick with CUPS.

Looks like In what ever area apple gets marketshare they will try to impose themselves (so they act just like msft whenever they get the chance).

Anyway about the Patches , I don’t think you should take it personal. You know how the burocrazy thing is, they don’t accept it now, but then don’t mind later. Many community patches / contributions have been blocked and now I see them getting accepted.

And hey we can’t just blame canonical for doing this sort of thing, is something that happens all over the linux community and foss world. and while every other distro moved away from compiz, I can thank them for adopting it.

Anyway I agree with you that things are pretty wild right now (which doesnt really surprises me on linux), but with them moving back to QT and probably making it default, don’t you believe they will be releasing compiz back to interested community hands once again or at least give up some of the bureaucracy or …. things stay just as is?

Well, the reasons for representative forms of govt are largely historical. Today, people vote several times a day, on their smart phones ( American idol etc) and desktops ( arbitrary pointless polls). With the infrastructure we have today, at least in developed countries, a more participatory form of government is within easy reach of the people.

Of course, do you really believe that the people who can bring about this transformation would willingly relinquish their power ?

It’s funny that I should stumble upon this post right now, as I’ve been recently thinking about ways to fund free software projects in a way that provides a stable, livable income for developers and also respects community ideals. I’ve come to think that perhaps the only way to this without having a corporate sugar daddy, is to form a cooperative of some sort. As far as I know this has never happened, but the cooperative business structure and the Free Software Community structure seem like they would be a good match. They’re both democratic, and they are both member benefit-centric.

Anyway, thanks for all the brilliant work on Compiz and all the best in the future, Sam!

It seems to me that it’s a management problem. You can’t deliver to a large audience without good, accountable management. This *usually* comes with commercialisation and business people scared of community input, but doesn’t necessarily have to.

I don’t think any commercial company are really going to care about the free software community.There goal is to make money and nothing else.I think free software can only triumph with massive public sector backing.Every state pays millions for proprietary software every year,we should campaign for the public sector to switch to free software and use the savings to fund open source projects.And if you’re one those free-market fanatics who thinks the state can’t do anything right who do you think developed computing technology,the internet and satellite communication?It wasn’t the private sector,they’ve merely profiteered and monopolised publicly created technology often by using proprietary software.I also agree with seegar mason above on co-operatives but this would be best on smaller projects for large projects we really need state backing.

If you libertarians knew anything about economic history you wouldn’t want to shrink the public sector.That has only ever resulted in social and economic disaster.The public sector has grown continously since the beginning of capitalism,you call it cancer it’s more like progress.If you really want a free market you’ll only find one in the third world where the state is small.All industrialised countries have a large public sector,accounting for about half the economy on average,and in those with the best social and economic conditions it’s bigger still.

Are you serious?You really believe that the so called “PIGS”,Portugal,Ireland Greece and Spain,are in crisis because of excessive government intervention?They,along with Eastern Europe,are all among the most liberalised countries in the EU and they’re in the worst economic shape.The Scandinavian countries and Germany with much bigger welfare states are the best performers in Europe.

Desktop software:
Community writes desktop software as it likes
Companies write desktop software so it *works*

Take Jabber+Jingle for example:
You can easily play chess via Jabber (psi-plus)
You can easily join conferences via Jabber
You can even make your own Jabber server
And if you want to call behind NAT – you’re screwed

It’s all about business models. Red Hat sell support. It’s directly in their interest to work on the body of software they support, which leads to a great, harmonious relationship with the community. As a bonus, their customers are generally professional types, who have an appreciation for what they’re paying for and a good chance of contributing something back.

Canonical are in the consumer space, where the average person generally doesn’t give an sh*t how things work, why they work, or anything much at all besides how well it’s marketed. This leads Canonical down that deep, dark rabbit hole, rife with the crap that most engineers are allergic to. Buzzwords, appeal-to-emotion, pop culture, hollow marketing etc. It also seems to bleed into their engineering culture somewhat, which from an outsiders perspective seems competent but completely mismanaged.