The MySQL model
(This blog entry was written and co-posted together with my friend and the CEO of Warp Networks and EBox Platform, Ignacio Correas. Copyright notice: Please note that pictures embedded in the story by Ignacio are certainly not Creative Commons licensed anything.)
Ignacio: I have always considered MySQL as the best model for open source companies. Their approach to the market, the execution of different business models, their relation with the community or the way their work internally as a virtual organization have shown an innovative and successful example of how an IT company in the 21st century can be managed.
The agreement with Sun, announced last January, was the crowning point of all the efforts put in the company since the beginning, proving the success of their innovative model. Since then I have been trying to put some order in my ideas about their model and summarize them in a few blocks that could serve as a quick guide to emulate their success. I discussed my ideas with Henrik Ingo, a friend of mine who joined MySQL recently, and he has helped greatly bringing his experience and insights on the matter. Here are the 10 points that resulted from our discussion about the MySQL model:
1) Market focus
Ignacio: Most open source startups face a similar dilemma when going to market. Should they become the open source, cheap alternative to the expensive, overfunctional and well-established competitors? Or should they do things differently and focus on unattended needs or new users? The first option is usually the easiest way because the market and conditions are already defined. MySQL chose the second option, riskier but more exciting and fun. Instead of competing directly with IBM, Oracle, and Microsoft in the
high end database market, it cleverly focused on the new flourishing markets of the Internet applications. MÃ¥rten is insisting on this point at every chance he gets with his motto “The Best Online Database”. It was a risky bet then but now MySQL is definitely the Web 2.0 database, and from their huge user base there have arisen some large customers, such as Google, Youtube or Yahoo!, with massive deployments and great success cases.
Henrik: MÃ¥rten always says that MySQL shouldn’t be a technology driven and not even a customer driven company, but market driven. It took me a long time to understand what that means - especially that being too focused on your current customers could potentially be a bad thing too. By focusing on a new and rapidly growing market, you don’t have to compete against any incumbents, and better yet, by just keeping your market share you are growing every year. Most importantly, MySQL has in fact been part of defining the Web and Web2.0 markets - not just playing the game by its rules but creating the rules!
2) Revenue model
Ignacio: MySQL is definitely one of the pioneers in the difficult task of making money with software that is free. During its 13-year history, the company has followed virtually all the known revenue models in the open source world. From a dual license for OEMs, to support, consulting and training services or the more recent subscription model, MySQL is continuously finding the optimal combination with the familiar and not-so-familiar models.
Henrik: Being different is hard enough (most people just lack the imagination required) but being different and still profitable, this is one of the hardest things in this list I think. From the outside most people don’t realise how much experimentation and development is put into the business model. It seems like from the start MySQL has tried a new business model each year.
For instance, MySQL wasn’t even GPL’d before 2001 (I think). Before that Monty and David used a system where Linux users got it for free but Windows users should pay. More like shareware than pure Open Source I guess? When changing to GPL the revenues dropped to a fifth of what they were previously (as many Windows users stopped paying). Yet, soon thereafter revenues grew faster than ever before - it turned out to be the right thing to do.
Kaj always likes to say that MySQL is like building an airplane and flying it at the same time.
3) Marketing and sales model
Ignacio: I must admit I am not an expert in this field but I think it is not too hard to realize that MySQL’s sales model differs substantially from other more traditional IT companies. The thing that marvels me the most is the intensive use of the Internet to find leads, to strengthen the word-to-mouth effect of the community, to tightly coordinate with partners or to increase awareness of MySQL’s capabilities, for example with their free on-line seminars. Well, this should be natural for any open source company, but it is not easy to align the views of the marketing and sales team with a virtual, collaborative model.
Some time ago, somewhere, I read that MySQL spends only 10% of its annual budget in marketing, whereas Microsoft spends 50% (I might be wrong in the exact amounts, so don’t use this as a reference). On the other hand, MySQL’s revenue has been doubling every year, whereas MS’s increase has been around 10%. I know they are not comparable companies, and that it is harder to double your size when you are a $50 Bn company than when your revenue is 1,000 times lower. But still, it is undoubtedly clear that MySQL’s marketing expenditure is far more effective than MS’s.
4) Distribution and integration with other technologies
Henrik: As long as I can remember, MySQL always was there - and there are many angles here.
Basically in the Open Source and/or Linux world the battle was between 2 players, MySQL and PostgreSQL. However, MySQL (until some years ago) was the only alternative that was also available for Windows. And when 90% of Web servers were running Linux but 90% of web developers used Windows at home, MySQL was their favorite choice. And remember, they used modems, so most of the time the developer was disconnected from the server, so running MySQL, PHP and Apache also on Windows was a must to get things done. Most people I talk to don’t agree with this, but I think the availability on Windows may have been the decisive factor in MySQL becoming the nr 1 Open Source and Web database.
Then MySQL was also the choice of most web hotels. In fact, in 2001 or so I was a Postgres fan and did all DB development on Postgres. But then I had to make some projects where the database was going to be hosted by a web hotel, and it turned out all of them just offered MySQL and very few had Postgres. So I had to start using MySQL, and I was quite ok with that, but in the beginning it really was a choice that was done for me.
And then finally of course MySQL has been the default choice in so many CMS and other web applications, tutorials and so on, beginning with Perl and immediately after with PHP.
Ignacio: I totally agree. The integration with Windows helped decisively to enter the new market of web developers. Actually, the Windows version of MySQL still accounts for over 40 percent of the downloads, almost half of the total.
On the other hand, a lot of MySQL installations on Linux are not downloaded from the web site but come embedded in a distribution. In my opinion, the decision of releasing the code under the GPL helped greatly in getting integrated in every Linux distribution, fostering its adoption by the open source community and ultimately leading to the creation of the LAMP stack. The integration with Linux, Apache and PHP was the right choice, both from the technical and from the market point of view. Being in the middle of the LAMP stack (great name, by the way) gave instant and global visibility and it positioned MySQL immediately in the desired segment of the market.
5) Internal organization
Ignacio: The thing I admire the most in the MySQL model is that the whole organization works virtually. The way it is managed in every aspect with 70% of its employees working from home in around 30 different countries is just amazing. But I do think it is the way to go nowadays and MySQL is showing the path.
Six months ago I shared a dining table with Monty (one of MySQL’s founders) in a conference in Finland and he was eager to explain in detail the company’s internal organization as a virtual entity. The idea behind it is to be able to hire the best people in the world wherever they live. As Monty said, if someone is good, it’s worth doing anything to hire him/her, even if it means to increase complexity in the administration or to found a sister company in a new country just for that employee.
Many people think that the main idea behind a virtual company is to reduce structural costs. In fact I thought so before meeting Monty. But the truth, as he explained, is that costs stay in the same level that in a traditional organization, because people need to meet in person twice or thrice every year, and traveling becomes expensive. But you definitely get an increase in motivation and productivity, which, from the facts that I understood, can be estimated in at least a 15% increase.
Henrik: There is a thrilling story in the MySQL history book employees received this year, which is about MySQL’s first Non-Scandinavian employee, Sinisa from Belgrad, Serbia. Sinisa was on-call for support and was giving phone support to one of MySQL’s customers, a US defense contractor. The thrilling part of the story is, at the same time, US Navy Jets were dropping bombs into Belgrade!
But this story highlights the international and global nature of MySQL’s organisation at a very early stage already. This is of course not uncommon to any other Open Source project either.
6) HR policy
Henrik: One thing that struck me when starting to work for MySQL was he high level of seniority throughout all employees. When Monty says that the point of a virtual company is to hire the best people in the world - yes, they mean it. You could already see this when looking at the open job positions, Senior Engineer this, Architect that. As a rule, when people join MySQL they already have several years of experience, often from some other database company like Oracle or Sybase.
Recruiting is hard - I know that myself from my previous jobs. How do you know which are good? The obvious way obviously is that engineers are mostly hired from the Open Source community and often specifically the MySQL community itself, so they already have shown their talent publicly when they are hired. But there are many positions where this isn’t possible. Even in such cases it seems to me that a good way to get hired with MySQL has been to somehow be known already: Be related to someone, be a friend of someone, or even just being Scandinavian might help, anything. I also know of several cases where someone joining MySQL has previously been a customer.
Being a virtual company, it is my understanding that MySQL never hired people without meeting them though. This is important to understand, because it typically means the cost of a job interview will be hundreds of Euros due to flight tickets.
MySQL also seems to rely on the technique I’ve myself seen to work well, which is to have as many people as possible interview a candidate. On the other hand I don’t think there were any tests or such, at least for me there weren’t. Again, candidates were selected on the basis of already being known to be as good as they claim to be.
For HR policies I think MySQL was best known for its Scandinavian 5 week vacation applied worldwide. Of course, being a Scandinavian myself, there wasn’t anything special in it for me, but I think it again highlights an aspect of being a virtual company. While the employment legislation realities may be different across countries, MySQL tried to treat all nationalities equally. Indeed, in some countries people were employed but in some countries the employees were actually contractors. But internally you couldn’t tell which were which, contractors were never treated as “externals” or anything.
7) Partners ecosystem
Ignacio: We have been MySQL training partner for more than two years now. What we have learned from that experience is that the kind of relation you can get with MySQL as a partner is almost as feeling an integral part of the company itself. From the direct contact, close collaboration and share of revenue it is easy to realize that MySQL seeks a long-term relation with its partners, and it is ready to sacrifice some short-term profits in order to drive opportunities for its partners.
Moreover, the whole MySQL’s Conference & Expo is clearly an event especially organized to increase visibility for partners. It is really an ecosystem where you get the opportunity to grow and develop as a part of a bigger entity.
Henrik: Even for big companies having a good partner network is essential, nobody can do everything by themselves in this world. For a small company it is even more true, of course. One way to think of this is, when do you remember first thinking of MySQL as a significant player in the database world? I think for me it was 2000-2001. For some “significant” may have been later. Yet the company behind MySQL was ~10 persons in 2000 and ~100 in 2003. (And of course, by the more conservative standards, MySQL was too small to be significant even right until the Sun acquisition.) In fact what inspires me about MySQL is the fact it has been able to act as a global player with such a small team, providing consulting and training to customers around the world. This is not only thanks to the partners, but also a testament how Internet and globalisation in general has changed the world.
8) Development model
Ignacio: There are many ways to organize a community around an open source project, but they all require a strong leadership. MySQL chose to keep the development in-house, which is the natural decision in a company basing its business entirely on the product. It has the main advantages of keeping a standard coding style and avoiding copyright issues. On the other hand, by ensuring the openness of the code it gets quickly the main benefits of an open source project, namely bug reports, documentation and visibility. Moreover, a bunch of extra developments, such as connectors, UIs or patches, where coded by members of the community, which apart from completing the product became a good source for recruiting.
Henrik: This is an interesting topic right now, because it is also relevant to many other Sun projects. The fact is, MySQL is developed in-house to a higher degree, and we may in fact be missing out on something. Of course, the fact that the product is sold through a dual licensing model may deter some Community contributors, but in my understanding this is not a significant problem - most Open Source
contributors are quite ok with others making money out of your contributions anyway. In fact, there are patches out there at this very moment that we are not able to absorb for various reasons - so the problem is the exact opposite as you’d assume. The reasons are plentifold, legal (contributor agreement could be better), non-modular codebase and the fact that a lot of development talk tends to gravitate to company internal mailing lists.
I think a good benchmark for MySQL should be the Linux Kernel, of which there is a good whitepaper by the Linux Foundation. What are we missing out on? 14% of contributions from non-paid hobbyists is a good start. We should have at least that amount of community contributions too!
All this being said, the commercial driven development has been good for MySQL, and the product has benefited significantly from the growth of the business enabling the company to hire more great coders. In fact, the prime reason why the MySQL community is so small is that MySQL constantly kept hiring all community members - I’m sure we all agree this is a GOOD THING.
9) Relation with community
Ignacio: In spite of being a company, which sometimes raises mistrust in some community movements, MySQL has so far managed to keep a very good relation with the open source community. Even when it launched the Enterprise version, a closed fork of the database, it managed to explain well its decision and avoided a lot of critics. In my opinion, the reason it managed so well was because it kept a the same functionality available for both versions. There are other aspects that help explaining its good relation, such as the presence in the blogger ecosystem, the sponsoring of some contributors to present their developments at the MySQL Conference or the fluent communication between core developers and community. However, there is now a big challenge, as MySQL announced plans to publish some very demanded functionality only for paying customers. This is raising concerns in the community, even outrage, and can damage seriously their relation. Anyway, I am confident MySQL will listen to its users and get to a compromise solution good enough for everybody.
Henrik: For me personally this is an interesting part of being in Open Source business, the feedback and close ties with your users is so much stronger than it was in Pre-Internet times. So in effect a good manager in an Open Source company has to have some understanding and active practition even in issues like ethics and philosophy, and let’s be honest, also populism The issues are not black and white or rational, but you do need to know how to live by them. Note by the way the strong language used by these otherwise quiet nerds! It’s like “cheating on your wife”: bad; “Doing closed source code”: unethical!
10) Time frame
Ignacio: Something many new entrepreneurs forget when trying to emulate the MySQL model is that its $1Bn value was not built in a day, but it took 13 years of hard work and step-by-step evolution. Of course there are examples of huge valuations in really young companies (Youtube, Facebook, Xensource, …), but for each success case there are thousands of failures. The way to really follow MySQL’s model, is about adding real value today, not about thinking of how to sell the company tomorrow.
Henrik: Even with MySQL there was an option to “get rich quick”. Monty, David and Allan were offered around 50M$ to sell the company during the dotcom bubble. While, according to Monty, it was hard to say no thanks to such amounts of money, they chose to continue looking for an investor that let them stay in control as majority owners. Now after the Sun deal, these guys are even richer than 50M$, but guess what - they intend to stay with their original mission: providing superior database technology available and affordable to all, now with an added boost from one of the biggest IT companies in the world.
Update: We are getting some feedback regarding the factual correctness of my last point here, so I just want to point out that while these "during the bubble..." stories are always entertaining to hear, the real point is not how much money possibly was offered for MySQL, but rather that the founders were reluctant to sell away majority too early. One reason even being that it is hard being a revolutionary if you're not even in control of your own business. (This point came up during an interview I did with Monty at the May 2008 Open Tuesday event in Helsinki last week, which I promise to blog about real soon now, honest...) The irony of course is that if "being a revolutionary" was the prime motivator, it is funny that in the end the founders ended up with even more money than a quick sell would have given them. This is a correlation I strongly believe in by the way (Linus Torvalds...).