The open source community is a diverse and fractious collection of individuals and organizations. In its infancy, in many ways it could be compared to the hippie movements of the '60s: a lot of passion, a lot of fun, a lot of weirdness, and not a lot of organization. Over the last decade or so, it has evolved into a respected software development force that relies on the support of its members.
As it's grown and diversified over the last decade, it has gotten more mainstream in the sense that there are now many different players that are making quite a bit of money based on open source principles. It has more prestige and a lot more respectability. As they say, money changes everything.
That's what I was thinking as I read Max Schireson's article, "The money in open source software," on TechCrunch: how much things in the open source community have changed, and how much they have stayed the same. The article is a breakdown of how to plan for a profitable company based on open source software. It provides a lot of common-sense points: Have and stick to a business plan, pick a licensing model that makes sense, and maintain customer satisfaction. None of these are particularly earth-shattering ideas.
But I was a little confused by the article. What struck me is that these points are really for just a software company (open source or not). Once you start monetizing your software in this way, that's what you are: A traditional software company.
It's important to note the difference between an "open source" company and an "open core" company. The open source development model provides full versions of software under an open source license without holding back features. The open core model can be compared to the "shareware" model—you get a neutered version of the software under the open source license, but some of the most crucial and useful features are reserved and only available under commercial license, typically through subscription. Open core software is a "bait and switch" approach where the reputation of the open source community is used to drive adoption. Once an enterprise has committed to using specific software, it is difficult for them to move away from it. They are chained to the software selected and must pay for any needed features or functionality that are developed solely for the enterprise version.
The open core model is viewed negatively by the open source crowd (an opinion readily apparent in many articles such as this one from Red Hat, or this one from InfoWorld) because it hurts the value of what open source is supposed to do. Open source wants to promote innovation by allowing full software access—not just for customers, but for developers so they can add new features and innovate. The idea behind open source development is an open access model—if an outside party develops code that performs a needed or demanded feature, it can be added and made available to the community as a whole. The open core model tightly controls what features are available in the community version and what features are available in the enterprise version.
The open core model leads enterprises down the path to "vendor lock-in," with ever-increasing subscription prices and limited opportunity to really find the best solution for any particular technology issue. This is protecting the best interests of the software company over the customer.
The only reason I bring all this up is to examine the two other points that were made in the article about how to monetize your open source business: Don't base your business on selling support and services. On these points, I disagree. An open core software company uses a traditional revenue model that forces a company to commit to a software strategy (that ultimately limits its options), while an open source company fosters a community of innovation and quality that provides the best solutions for customers.
As somebody who has been successfully running an open source company for nearly a decade, I believe that there is a way to grow an open source business through support and service—and it's not through promoting vendor lock-in. Instead, it requires that you hold the same ideals the open source community holds and that you support those ideals with your actions.
To succeed in selling services to the open source community, you need to show that customers' needs are your priority. In other words, you have to be able to look at all the software options and recommend the best solution—whether it's your solution or not. By demonstrating your commitment to customer well-being, you build long-lasting relationships that can translate into long-term revenue.
For the last nine plus years, Percona has successfully done just that. Our revenue comes from support and services. We have operated and maintained the company by embracing open source community principles wholeheartedly. When people come to us for advice, they know that they will get a straight answer as to the best solution.
This has worked because we are seen as a trusted partner in solutions. We provide our customers with the advice and support that best fits their needs, not our software. We aren't looking to pitch a particular platform—we provide solutions for any situation. This is the secret to selling services and support to open source customers.
I've noticed over the years that very few companies rely on a single vendor to run their company, no matter what technology area we're discussing. In the area of database management (our field of expertise), there isn't just one "perfect" platform for every environment. When we survey customers about their databases, we get many different responses as to software: Oracle MySQL, Percona Server, MongoDB, CassandraDB, etc.
Some companies use more than one database, because frankly, different workloads often require a different solution. The fact that our software is open source means that we can work with any of these platforms, or suggest any of them, without affecting our bottom line. Through our platform-agnostic stance, we help insulate our customers from vendor lock-in. We are trusted by our clients to give them the correct solution to meet their needs. This is a strength.
Tokutek is a good example. When they released TokuDB as a fully open source product, they found that their renewal rate did not substantially change. Instead, by providing a fully available open source solution, they increased adoption and didn't lose previous contracts.
When Percona recently acquired Tokutek, the executive staff at Percona went back and forth on what to do with Tokutek's products. We ultimately decided to model their future after the rest of our software—make them open source and fully available. I think we made the right decision, because in the end it maintained our status as a trusted, impartial advisor.
As an open source company, we are maintaining our customer base and renewing contracts at the same rate or higher than any open core company—and we've done it without holding our customers hostage to an enterprise version.
In burgeoning markets, it's possible to sustain very high profit margins. But as the market settles and competition levels the playing field, it is nearly impossible to hold on to those same margins. If your goal as a business is growth at any cost, the open core model probably seems like a sound option. However, you are making this decision at the expense of customers.
On the other hand, if your business goal is solving customer needs as best suits them as the benchmark, an open source model is an excellent fit. The margins may not be as big, but it does engender customer loyalty and trust. Who says growth at any cost should always be the goal?
The popularity of software and products comes and goes as different solutions fall in and out of favor. Forcing customers to tie themselves to a single product, while arguably a well-established and safe move for both the short-term and the long-term, still takes you away from the open source community spirit of "fully available, fully innovative." If you are going to successfully sell to the open source community, you need to demonstrate that you have the same principles that they do. You need to earn their respect. You don't get that by forcing vendor lock-in. You get that from being a trusted advisor.