The Open Source Myth

Posted: 5/28/2009 12:39:02 PM
Should I open source my software? If you are asking yourself that question, this post may help you decide what to do.
My goal here isn't to rehash a stale topic that "everyone dismisses" but to simply answer some questions about why I believe Open Sourcing might not be the best path for everyone and why I've made some of the decisions I have. I want to help other people who might be faced with the decision to open source their own software make a better decision for themselves. There is plenty of pro-Open Source Software (OSS) material on the web, so I'll focus on arguments against it, because that is my current stance. There's my bias, read at your own risk.

Why Myths around Open Source

The goal of a myth is not to tell a true story of history, but to encourage a particular kind of behavior. The myths of open source are to promote the development and use of open source. They are designed to encourage the promotion of it to build what many believe will be a better world.

The value of the myth is to support a particular idea, regardless of the truth behind the myth. The proponents of OSS thought, or think, it'll make the world a better place, but has it? I don't know. I really don't know any other industry that gives away the fruits of its labor and still exists. Maybe there are some, I just don't know them.

Maybe you could consider charities like the Red Cross an open source equivalent to hospitals, but businesses are not charities and even charities rely on money to survive. If developers give away their software, where is the food going to come from? Lots, perhaps most, open source developers have salaried jobs. OSS is a side project, but if you want it to be your money maker, perhaps it isn't for you.

It seems like the Open Source movement is devaluing the labor required to build software. They are pushing developers into the realm of starving artists or garage bands with the only reward of their labor being a warm and fuzzy feeling. But warm and fuzzy feelings don't pay the rent or buy food.

The myth here is that OSS is better for the developer. In reality, it is better for everyone but the developer.

Try to remain rational

I know this is a heated topic. Open source or closed source has become part of the developer identity, so it can get a little emotional to say the least. Much of the issue is the same as debates on religion, so Paul Graham's thoughts on identity apply here as well.

I warn you, I may get a bit emotional myself, but I'll do my best to keep my comments rational and focused.

Some background

First, I'll point to Niel Gunton's Open Source Myth's from a few years ago. The article is a good one and sparked some healthy debate. In the slashdot conversation etymxris replies, "I just don't think that the government should grant monopolies on any idea." Let's be clear, we aren't talking about a monopoly on the idea, but rather the implementation of the idea, that is, the work, energy, research and development required to make the idea whole and usable. Remember, success is 1% inspiration and 99% perspiration.

Second, some links at talk about myths related to OSS, both pro (1999) and con (2003).

You can't undo Open Sourcing your project

This is one of the biggest issues for me. It's the same reason I have no tattoos. I will never get a tattoo, because I don't want to do anything to my body that costs more to undo. If you open source your code, you can never take it back. I am not absolutely certain that I want to Open Source my code, so I don't. That is a good enough reason for me. Undecided = no.

Of course I could have different versions of the software, some of it open and some closed. I could fork it. Other people could fork it. I could have "closed source" features. But all that just makes the decision more complicated and easier to avoid. So I just say no.

If I never get a tattoo, I never have to worry that the needle was sterilized properly and I don't have to worry about getting a bad tattoo.

Closed source software is simpler for the developer. Code is complex enough. Do you want to focus on managing an open source community or focus on your customers? Managing forks? Maintaining control? Open sourcing code is like opening a can of worms. Who knows what will happen!

Some arguments say, if you open source your product, the community will make it better for you. Well, that's largely a lie and it's also motivated by laziness. A lot of OSS projects are released because the developer isn't skilled enough to complete the vision and people have little desire to implement someone else's vision. You're better off keeping your project closed and working hard to make it valuable enough for a customer to buy. Then you can ditch the day job and focus on your vision 100%.

License Virus

Daniel J. Schwartz, from Jenner & Block, LLP, in Open Source: Paper Tiger, Hidden Problems writes:
If a programmer simply clicks on a button to download even the smallest packet of code and thereby agrees to the GPL, then the GPL may require the entire software program, which incorporates the GPL-code, to be made available as open source under the GPL. This is true regardless of whether the programmer or employer ever intended others to be able to see, read, view and modify their software. Thus, a single click of the mouse may render otherwise proprietary software available to all. For this reason, the GPL is often referred to as the most “viral” open source license agreement – i.e., like a virus, it infects any code into which it gets inserted.

There are myriad OSS licenses. 65 different Open Source licenses in 9 different categories at alone. There are just too many. These licenses are like viruses. If you use code that contains them, your code contains them. They attach themselves to everything you write and everything you distribute. These viruses run the risk of killing the host -- the software and the developer career.

It seems ironic that there is competition out there to enable people to give away their source code. Why can't the open source developer just put the code up on a web page? Even when releasing the code to the wild, there is still the desire to "keep it." To keep some recognition. To prevent abuse and "theft" of the idea. The OSS developer is saying, "I will relinquish profit, but you can't profit either!" Why? Well, perhaps on the pro side, as we will see later, there could be some protection of your right to use your own software.

It's a license popularity contest. It feels irrational. People get unpredictable when they venture outside rationality, so that is one reason to stay away. Exactly why it is so irrational is a bit of a mystery, but until it is solved, I can't say yes...

Legal Precedent

There is very little legal precedent to help the developer understand what will happen in court. There are some cases, one regarding model rail road software. One person selling train software sued someone who had open sourced his software. The OSS guy, then counter sued because the software seller used some of the OSS in the CSS, see the part about unfriendly communities below). Still, the OSS guy, Bob Jacobsen, still had to spend time in court to use his own free software. Just because you open source your software, doesn't mean it's yours.

Microsoft went after Linux for some of the same reasons. So, still a mystery in the mind of law, thus undecided = no.

I could do that myself

We often say this when we look at beautiful art, but could you? Why didn't you? If you can, please do. It will expand the market for the product and give consumers something against which they can compare different options. Make the closed source projects work harder to make a buck. Some believe competition is good, but I believe collaboration is better. Both kinds of people exist in the OSS world.

A lot of hackers out there think they could build a better open source version of a commercial product, but they fail and hurt their customers. I've lost emails on two different occassions because of bugs in Thunderbird. I never lost emails with Outlook Express, which is closed, but also free. Thunderbird is really bad at importing its own mail boxes. It can import from Outlook Express. Why can't it as easily import its own content? How can Thunderbird just forget that it has been setup and configured already? It's like they don't even know why it happens... That doesn't instill a lot of confidence and I'll never use Thunderbird again. If Outlook did that, people would stop paying for it.

Open source is a label used to market products. It's often a gimmick and it hurts the end user in some cases. Just because it's open source doesn't mean it will be supported later or it is quality software. Most end users aren't able to tell the difference anyway. Sure, you can add to the project if you know how (etc), but that doesn't mean you will, nor does that mean it will be in your best interest just having that capability years down the road.

Is the future of software threatened because computer processors are not open?
The examples are that MySQL is not as good as SQL Server or Oracle. Then MySQL was bought by Sun, then Oracle bought Sun, so since MySql competes with Oracle, what happens to MySQL?

The idea that OSS is better for your personal or organizational future is a myth. The future is uncertain, regardless of whether or not you can see the code.

Think about it. Is the future of software threatened because computer processors are not open? You can't tweak your graphics hardware. You can't improve your own memory chips. It's not a rational argument, it's a myth.

The OSS community is selling the hope that you will be able to modify the code later. The hope that you will be able to find a programmer who can help you when you need it. The hope that your software will never die, but OSS projects die all the time, so you aren't really limiting your risk. In fact, you may be increasing your risk if the developers behind the OSS project fall out of love with it or die because they can't afford to eat. Money is a good incentive to keep working on a block of code.

Too many forks, not enough spoons

I don't even want to count the number of Linux distributions available. Do you want something like that to happen to your software? I don't know. It seems like it would be better to have a community around Linux, but really it's a community around different distributions of Linux. Some OSS works in some distributions of Linux and doesn't work in others. Sometimes it's as easy as recompiling the original source for your distribution, sometimes it isn't. Sometimes you must install other software packages to make the software you want work. Truth is, OSS is highly dependent on other OSS projects. What if the projects your software depends on lose flavor with the developers behind them? What happens if Oracle stops supporting MySQL and your PHP app runs on MySQL?

This might not be a big deal to you. I can understand that. But look at the web now. How many browsers are built on top of webkit or gecko? There's infighting among the community as well. "My distro is better than your distro!" Okay, well the fact that there are multiple distros makes the OSS world more confusing for the end user and what the end user wants is simplicity.

OSS leads to complexity, subtracts value for the end user and replaces it with risk. We want less risk, not more. To say that OSS is less risky for consumers than commercial software is a myth. It makes it better for the hacker, sometimes, but not always.

The community is not completely friendly

From dossen (306388) at the slashdot response
To "rip off" (as in fork the project and become the "official" version) the code from such a project, you would need to provide enough of the infrastructure that the original company provides, keep people interested in your version, and merge any "good" changes

If you are a small development shop, this is not difficult. Not only do small development shops, and especially individuals, suffer from "Hit by the bus" syndrome that a larger company who forks your OSS may not. Larger organizations also have more money and power to market their version of your software. If they are really powerful, they can just recreate your software, but why give them a head start? This is a dog-eat-dog world and if your product is valuable, someone will want to compete with you. Not all of us are collaborators, but we all need to eat and some of us want SUVs.

So in this case, size matters. The smaller you are as an organization, the less power you have to defend your OSS project.

OSS is not necessarily VC friendly

Open source actually increases risk. Because there are few legal precedents, some attorneys caution against using open source software. There may be some questions about how much of your project you own and how much has to be made public.

Say Microsoft did win in their case against Linux and your project is built on Linux. Maybe you have to stop using your software or rewrite it for something other than Linux.

This uncertainty increases risk and therefore reduces valuations. Not all VC's care. Some do. Some actually prefer you build your apps on open source, because open source is free, meaning lower startup costs.

Not all changes from the community are good

Your community might want to take your software their own direction, but that doesn't mean the changes they implement make the software better. Multiple software developers means more confusing code, it's more difficult to maintain, and there is more of it. That's not always better for the end user of the software.

You may end up with too many cooks in the kitchen.

Not all developers are good developers -- few are great

I've seen some really bad code out there. We all have. Open sourcing your software exposes it to the good ones and the bad ones. You'll spend a lot of your time doing code reviews instead of writing your own code.

Input from the community distracts you from your vision

The whole reason you started writing your software was to implement a vision. We've seen lots of communities on the internet, that once they start growing in population, they get less and less focused on the original vision. As the size of the community approaches infinity, the quality of the content approaches average. That mirrors my impression of a lot of open source projects. They aren't great pieces of software. They are average pieces of software. Firefox isn't the fastest browser. It's an okay browser. MySql is an average database. It's good enough, but not the best.

I want to be the best. I want to strive to be the best every day and I don't want to make my customers settle for average software.

Lack of revenue potential

If you open source your software your monetization options become limited. What intellectual property do you have to sell? You can be a services organization of course, but that means you'll be working forever and there are a plethora of people around the world who will perform services for less money than you will.

The pool of competition for great products is a lot smaller than the pool of competition for services. Many more people can install Joomla than can build Joomla for example. It may be in your best interest to keep your good ideas in your head and let people use the product rather than the code.

If software patents weren't essentially worthless, then perhaps you could retain your right to sell the open source, but still, undecided.

Product company vs. Service Company

When I was a consultant, I realized that as a service provider, I am selling my hours. I only have so many hours to sell. If I build a product, I can sell those hours over and over again. That's better for me. I want to get out of the hamster wheel. I want to be able to focus on bringing good to the world in many more ways than I could ever do if I sold only my hours. Life is short.

Success Stories are Rare

There are some good OSS projects out there, but the success stories are dwarfed by those of CSS. How many billion dollar open source software companies are there? How many closed source?

A lot of the OSS community is selling false hope. You won't get a bigger community with OSS than CSS. You won't work less. You won't make more money. It's a myth. Stop using one or two or three success stories to convince thousands of people to release their hard work and receive no rewards. The risk/reward balance is irrational.

Open sourcing your software benefits those who can't write software. Those who aren't creative enough or skilled enough to build it themselves, but are skilled enough to build a services organization on top of your software or sell some product like TiVo that included it.

Who benefits from Open Source?

I was at a little web hacker community and someone told me I should go talk to this other guy over there and get his opinion of my idea. The first question out of that man's mouth was, "Is it open source?" I replied, "No." The guy turned and walked away. When I investigated the guy later, turns out he wasn't a software developer. He couldn't write code himself, but he sold lots of contracting gigs customizing Drupal and Joomla sites. He paid developers a little bit of money to do the work on top of those platforms and he pocketed the rest.

I have learned since then, that many of the biggest proponents of open source make money off open source, but contribute very little to the community themselves. The hypocrisy is enough for me to stay away.

Imagine telling doctors to open source their skills or attorneys to open source their skills. It's hard to be a great computer programmer. It takes years and decades of practice, degrees, research, dedication. It's a real risk and the creative individuals who take the time to build visionary software should be rewarded for it.

You can fix or enhance it yourself

If the software is flexible enough, it can be customized without getting to the source. Source code is not flexible for most consumers of software. Only consumers who can code or afford to pay someone who can code can enhance source code, so in most cases, liberated software is not free software.

Go to any hosting company's tech support forums and you'll see countless people complaining about some open source project's ability to run in that environment. Maybe the product is slow or has some incompatibility. Do the individuals using the software fix the bugs or improve the performance? No, they just complain about it and tell the hosting company to make their platform work with the open source.

So the argument that the consumer of OSS is free to modify it to do whatever is a myth. It just doesn't happen like they say it does and most end users don't know how to do it even if they have the source.

Complicating the issue are the myriad environments in which OSS operates, the languages used to power them, the stacks used to run them. It is not as simple as going in and fixing the software. You have to install and configure an environment where it will run, learn the language, then understand the code well enough to make a meaningful contribution to the project.

Even worse, if you do fix the problem for a particular environment, then you are stuck with whichever version you were on. Maybe the community doesn't want to incorporate your fix into the software, so if you want to upgrade later, you may have to re-fix it. It becomes an endless cycle.

Free as in Beer

When I say "free" I mean the commonly understood definition of "costs no money." Let's just end the confusion. Every time someone uses the term free, the "Free as in Beer, Free as in Speech" discussion has to happen. So Free Software is software that costs no money. Liberated software is software that is easily modified to do more things.

The world understands "free" to mean zero cost. Let's speak to the world using common language. I like what Registered Coward v2 (447531) at the slashdot response said: many times do you see someone looking for an OSS aka "free" counterpart to a CSS aka "cost money" product? They're looking for free as in no cost, not as in I can mod it. That perception will limit entry and ultimately stifle innovation. How many innovative, vs "let's copy the functionality of product X" OSs programs are out there?

If the point of OSS is to give users control of their own computers, then the whole argument seems silly. I've been making my computers do anything I wanted them to since long before open source software. Even with open source software, many people can still barely use them, so it's really not a valid argument in my mind.

The reality is that OSS is neither Free as in Beer, nor is it Free as in Speech. It's not free. It costs money to pay someone to install, host, configure, and enhance free software. It requires time to learn and time is money. OSS is not free.

Open source does not make software more secure

One argument is that open source is more secure because other coders can go in there and fix it. But not all coders understand security. They may implement features that make your project less secure. More hands in the mix complicate the issue of security.

Plus, the black box makes it harder for hackers to understand. If they look at the code, it'll be easier for them to find the security holes too and there's no reason to believe they'll inform the community. Why should they?

I'm not even going to waste my time pointing out all the security problems with countless open source projects. There are a plethora of them. To say that OSS is more secure is a myth.