2010-07-18

What is an Open Source Company?

One of the hot topics here at the Community Leadership Summit in Portland is "what is an open source company ?". Simon Phipps has a got a lot of good points on this in his blog about Open Source Business.

We have companies like SugarCRM and Eucalyptus marketing themselves as "open source companies", even while not all of their code is available under an open source license.

To me it's clear that just because some of your product(s) is available under an open source license, you can't claim to be an open source company, as that would make the term meaningless. Under such a definition even Microsoft would be an open source company, as some of their products are now available as open source.

SugarCRM and Eucalyptus are clearly 'open core' companies, not open source companies. While open core is somewhat better than closed source, open core products have all the same disadvantages as closed source if you depend on a single feature of the closed parts for your business. In this case:

- You can't change, modify, port or redistribute the code.
- You can't fix bugs or extend the code.
- You are locked to the platforms that the vendor provides
- You are locked to one vendor.

In other words, the product as a whole should be regarded as a closed source product.

A little background why I feel so strongly about the term "open source company".

When MySQL AB was founded, David's and my intention was to create an open source company. Our definition was back then very simple "all software we produce should be under an open source license". When we took in investors we ensured that MySQL AB would stay as an open source company by putting a clause about this in our shareholder contracts.

David and I did however make a small mistake in that the shareholder agreement only said that "MySQL software" should be kept under an open source license. This allowed the MySQL management in 2006 to release Merlin, the MySQL monitor, as a closed source product, by claiming "this was not based on the MySQL server code". So even if we, the founders, managed to keep the MySQL server free, MySQL AB was only an "open source company" until 2006.

Learning from my mistake and to ensure that Monty Program Ab would always be an open source company, Zak Greant and I created the Hacking business model. Monty Program Ab follows this model and has additionally made a public promise that everything we create and release to our users will be under an open source license.

So what would then be a good definition for calling onces company "an open source company"?

I would like to suggest the following one:

1) You have to be a company that produces software.
2) All software the company delivers to its users must be available to everyone under an open source license. This includes all server code that is required to run and use the software.

In addition it would be good if the company could publicly state that all code they produce and release in the future will be under an open source license, but personally I would not require the company's to have to do this as some companies would have a hard time to do this.

At least here at the Leadership summit, the above definition seems to be acceptable to those that I have talked to. Please comment what you think about this!

16 comments:

Rahul said...

Sounds fair except that it precludes pretty much everyone including Red Hat from calling itself a open source company.

Red Hat for a while had RHN code as proprietary and released it as spacewalk project recently. However it also acquired Qumranet which has a proprietary virtualization product that Red Hat continues to sell. While Red Hat has promised that the next version in development will be cross platform and open source, your rules would prevent Red Hat as it is today from calling itself a open source company. Are you sure that is fair?

Mark Callaghan said...

I think you have overstated the risks of open core with respect to lock in. InnoDB hot backup is open core. Percona figured out how to implement it. Now we have an open source XtraBackup as an alternative solution for hot backup.

Salle said...

Monty,
Your definition is ridiculous!

"1) You have to be a company that produces software."

You exclude all and every Linux distributor who is otherwise fully dedicated in distributing, promoting, advertising and supporting an Open Source products only on the grounds that it doesn't produce software, but merely packages it!

You also exclude any Consulting company which otherwise works with open source products only and never with single bit of closed source!

Such companies by your definition have no right to claim they are Open Source Companies!

Not only it is ridiculous. It's insulting to all Open Source believers around the world who are unfortunate to not be into developers business and thus suddenly get categorized by you in some lesser human being category.

Harrison said...

You forgot to mention that MySQL AB used an open core model to begin with. MySQL for Windows was under a closed restrictive license for a long time. It wasn't until later that it was switched to GPL/LGPL and finally pure GPL.

Many of the big open source related companies would fall under this as well. For example, Red Hat had the closed source satellite update server for a long time. Canonical didn't have launchpad as open source for a bit of time.

As far as the base discussion, I generally disagree with the term "open source company". The adjective of open source doesn't apply to companies, but to software so I think the entire discussion is wrongly based.

Monty said...

To Raul:

For a definition to make sense and not misused it has to be very simple to understand and there should be no exceptions.

The fact that a company has promised that things will be open in the future, should not be enough for the company to claim that they are now an open source company.

Monty said...

To Salle:

The reason I added the 1) rule is that otherwise also companies that doesn't work with software at all could clam that they are open source companies.

Another reason is that I think that to be able to call yourself an Open Source company, you need to also contribute to the open source Community. Just doing services round Open Source is probably not enough. In other words, a consulting company that doesn't participate or support in the projects it uses should not be allowed to call itself an Open Source company.

When it comes to Linux distributions, all of them are producing software and most of them are doing all of that under an Open Source license.

Rahul said...

I think 100% code availability at all times is not feasible for pretty much every company out there. To claim that even if 99% of the code is open and 1% comes from a acquisition and is a temporary problem till due diligence is done and code is opened, it is not enough to called an open source company is a very unrealistic definition. It is simple but I don't buy it.

Ps: My name is Rahul

Rahul said...

"In other words, a consulting company that doesn't participate or support in the projects it uses should not be allowed to call itself an Open Source company."

Now you have added yet another restriction. Consulting companies doing services and support around open source software without any proprietary software is not allowed to be called an open source company? This is even more unrealistic than your current set of rules.

Kurt said...

I think it is quite right to exclude companies that do not actually produce software from calling themselves "open source companies."

It's like an automobile mechanic calling themselves a "car company."

However, saying, "We use, deploy, support and recommend open source software," is fine for a consulting company, IMO. That's like a mechanic saying, "We fix cars."

Monty said...

To Harrison: About MySQL on windows

It's true that before MySQL was GPL, we did charge for the binaries (not source) on Windows. This was one of the ways we used to bootstrap the company in the beginning.

However when MySQL AB was created, MySQL was already GPL and Windows was not a special case.

Anonymous said...

So I have this clear.

1. If I have a consulting company providing DBA services for PostgreSQL and MySQL, and we contribute documentation to both communities under an approved license we are NOT an 'Open Source Company'? What about lots of unit tests that are contributed to the community?

2. If I am a composer or photographer who writes music, produces MIDI and mp3 files or JPEGs all licensed under an open source license so people can use it for installers, icons, etc, I cannot be an 'Open Source Company'?

Monty said...

To anonymous:

Good points; I had forgot to take into account that you can produce other things than software under an open source/free license.

How about changing 1) to be:

1) You have to be a company that produces software, documentation or other works that are released under an open source license.

Ryan Singer said...

Hi Monty, others,

Whether or not the brand "Open Source" is useful in describing software companies is a broad and very complex topic. The context here is the idea that Open Core software marketed as Open Source breaks a fundamental promise to users.

I agree with that assertion, but I'm not sure yet how to deal with it. I like Monty's suggestion that we try to hold companies trying to affiliate with the relatively high status "Open Source" moniker to a higher standard. With the deep history of projects like the Linux kernel and Apache, many people expect an Open Source company to be able to work with enterprise clients without locking them into particular vendors.

I'm sympathetic to Simon's worry that Open Source is being diluted as a brand, and shouldn't apply to companies, but I don't think we have a better option. Right now, the only easily understandable way a company can publicly commit to software freedom that isn't incredibly politically loaded is to tout that Open Source is in it's DNA.

Monty Program and Forgerock are Open Source companies. Google and Sugar and Open Core. It's not a bad way to look at it.

Tarus Balog said...

I've been thinking about this a lot. I am pretty happy with part b) of your definition, but I would suggest a different part a).

By definition, an open source company cannot be one that derives revenue by selling software licenses (since that is antithetical to the definition of open source). Thus and open source company must be a services company, be it code, documentation, consulting, training, etc.

So how about

a) a company that supplies services around an open source software project or projects

followed by your b).

Dean Ellis said...

Not a fan, and that has to do with my personal distinction between "free software" and "open source".

What you describe, to me, is a "free software" company, ie: a company that produces software available under a free software license. MySQL AB was such a company, and I don't think our releasing a closed source monitoring program changed that.

To me (even if to no one else), "open source" requires "community". ie: open bug systems, reasonable patch contribution mechanisms, good relationships within the community (Linux distros, etc), and so on. "Open" has to mean more than "you can read the source" or you're just picking up a buzzword for marketing purposes.

james pruett said...

Could you share ways to make money and be open?

This sounds "off the cuff", but we have to eat.

The more we eat, the more open we can sponsor.