Last updated at Mon, 06 Nov 2017 18:36:02 GMT
Open source projects allow us to adopt technology without a lot of hoops. We get to leverage a strong community base, and potentially support the growing group committed to building even better solutions, which can have the added benefit of notoriety. But there is one problem – open source is not as it seems. While it might appear free to begin with, it does come with cost down the road in real dollars, pain, risk, and time.
Many companies are open-source first. Where every new challenge is faced with the question, “is there an open source tool to help us?” This is driven by the notion of free support for the dev community and the interest in speed of adoption. And often, their love is rooted in the original spirit of open source which is not the dominant driving force today.
There are three types of open-source technologies:
- Community Drive: These types of projects are usually fairly small. They are originally created by one or two individuals and often as part of an asset from a larger and existing code base. The projects are shared over GitHub, and contribution is almost always done by the original creators as they see fit. While there are some larger projects of this sort, the large ones usually evolve into a commercial interest-driven one. The pros of these types of projects are that they are the only ones that keep the spirit of the early days of open source alive. They are pure and free. The cons are you cannot trust that they will ever be updated or maintained. The original creators’ interest in continuing the project is usually predicated on their use of the code themselves. Their driver is not tied directly to the growth of the project like others described below. Which means unless you fork the code, and keep it as your own, never reverting back or expecting anything from the original project, you are good.
- Commercial Interest Driven: This is the most popular type of open source project. And while many developers may know there is a strong commercial backing for them, they are not fully aware of the motives. Examples of such projects are orchestration tools, NoSQL DBs, enterprise search tools, release automation, and so on. Commercial interest means that there is a larger company who has eaten the effort and actual cost of creating the original code base. They have the ability to rally a large community, and an impressive set of contributors. These are the larger, more commonly used open source tools by the developer community. But they are a little sneaky. One or more of the primary committers will work for the commercial entity. Many of the feature request will come from the commercial interest itself. They know that as much as 90% of the user base will never pay them. But they leverage the enterprise driver to have clear support and stability in their vendor. So their hope via some great events around the technology, and sniffing around the user base, is that the cream will rise to the top and purchase an “enterprise” version, commercial support, or professional services to support a company’s use of the product. For the smaller developers they get to reap the benefits, although there are some risks stated below.
- Consumer Enterprise Driven: This one is very interesting. Companies like PayPal, Etsy, Netflix, Facebook are releasing very large open source projects. Some, like Netflix even have their own microsites around the projects and have a small full time staff to support their growth in addition to internal committers. All the code is developed in-house usually, but there are times when outside committers are allowed. Why do they do it? One very simple reason – talent. By giving goodwill to community it makes it a lot easier to entice top tier developers. As simple as that. The pros of such tools is they are validated at high volume. That is also the con, they are just not right for all applications, especially small ones.
The Hidden Costs
- It could disappear in the blink of an eye. Especially for the first type, they could disappear instantly. And for the consumer enterprise open source projects, they also could move on quickly and let the projects die on the vine as they replace old code bases with brand new approaches. Just look at how Google and Facebook have burned through programming languages, file systems, databases, etc. As for commercial interest open source, there is a strong backing and they will remain as long as the company survives.
- Features could get stripped. There might be a driver for the commercial interest open source solutions to strip down their project; they often do this to encourage more adoption of the enterprise solutions. There is even a trend to create a middle tier professional offering for smaller companies.
- Not built for you. Many are not general enough to be used in projects without a lot of additional effort. And this effort just may not be worth it. This is most commonly true with the consumer enterprise projects; the solutions were built specifically for them, and not generalized for the public as the commercial interest ones are.
The constant across all of these is the unknown and instability of the solution.
The reality is, to really dive into an open-source project you will likely have to settle with a commercial interest one. You probably will be blindsided at some point by the need to “upgrade” in addition to your overall, sometimes ignored, costs. These include adaptation of the tool for you, and security planning. Often these hidden costs are higher than if a commercial solution was purchased. And if it is a cloud solution, the cost difference could be equivalent to the days of licensing enterprise software (CAPEX) compared to cloud competitors (OPEX) which can be a savings many times over.
Open source is a powerful tool, and no comprehensive development environment will be without some valuable open source components. The key is knowing that there often is a motive, and even when there isn’t, there will always be a trade off and some hidden costs. The idea is that you are deliberate about adopting open source, and not adopting just because it is easy. And you should always compare the open source tool with a commercial pay for alternative, in order to better decide and weigh the costs. You might be surprised to find that the paid offering is a clear winner.