The Exploitation of Open Source
At its best, open source enables people to be more productive by using code that is free and open to all to use and contribute to.
On the other hand, Open Source can also simply be used as a mechanism to entice consumers–its just a mechanism to get people to try the product. Once hooked on the product, maybe that’s where you find out some features aren’t available for production. Or maybe after you’re a hooked customer for years, the licensing will change on you. There was a recent example of this when ElasticSearch changed its license to make it less open.
Open Source Business Models
There are many different types of business models around open source software.
Corporate Open Source: This model is a similar to trial software. The open source version is some hindered, less useful version of the full, better, enterprise option. Companies that do this are confluent with Kafka oriented products and Elastic with ElasticSearch. There is a range in how “Open Source” these corporate business models are. Over time, the companies tend to change their licensing and way they contribute to the core open source product in order to entice users onto paid options.
Enterprise support: This model is one where you pay for support of using the open source products; however, the whole package and product is completely open source. These types of companies are more difficult to identify because they seem to have more competition and are not always centralized into one company.
Open Source Services: This model offers limited free services to open source projects but asks you to pay if you’d like to use it on private projects. There are smaller examples of this however with CI, coverage reporting, and testing services–they will be free for open source but need to pay for on-prem or private repositories. The goal here is to entice open source engineers who will hopefully bring their open source tooling experience to the private sector and encourage corporate to pay for services.
The Model Matters
Not all companies can be built on selling open source software; however, the way open source is used matters in those that do. Who is the customer? Is the licensing and source just a way to trick people into using the software only to be trapped in all the up-sells with a single company?
The enterprise support business model is the only one that doesn’t look at its user-base in a manipulative way. It is also a model that can encourage more collaboration on the software with other companies or independent developers. It is the model used by Plone–a open source community I’ve been a part of for years.
The model that has been bothering me more lately is the Open Source Services model. This model aims to entice open source developers into using them so they will hopefully eventually be adopted in corporate.
GitHub is now a Microsoft product. We shouldn’t be naive about why Microsoft saw GitHub as a valuable company to acquire.
Why Open Source: Transaction Costs
There are many reasons you might want to write and use Open Source software. You might be philosophically aligned with it like Richard Stallman or you might just enjoy collaborating with other people while building things.
I agree somewhat on philosophical idea that software should be open; however, I think I’m more inclined to enjoy open source because of how much more productive we all are with it. I think we’re more productive with it not only because we can consume software for free in our own projects but also because we can read and learn from it.
Additionally, I like to look at open source the way Michael Munger looks at the sharing economy in his book, Tomorrow 3.0. In it, Munger argues that it’s all about lowering transaction costs. It seems to me Open Source software is the same way–we are lowering the transaction costs of building software by sharing code for problems that have already been solved and building infrastructure to make it easier to share and collaborate on it.
Building Open Source Services
I would love to see open source developers work on building better open services and tooling so we aren’t forced into mixed corporate open source offerings that lock us in or are over priced to be able to use privately.
One example of this recently is codecov. It is a really nice tool that is free to use for open source but has a pretty hefty cost for private projects(especially on-prem).
It bothered me that something like that shouldn’t already be an open source package. It’s a simple set of features that I’m interested in: diff coverage and PR integration. Now, for a company that has any code private, the minimum charge to use it is $50,000. That is not a small amount and probably crowds out all small companies and some medium sized companies. Even if you are a large company, it takes an approval process to justify a $50,000 product. The price and process involved in getting a priced product in corporate land increases the transaction cost a significant amount.
This is why I started the Open Coverage project. It is a MIT licensed code coverage service. You can use it in any way you want–even has docker images. Very low transaction cost!