Or should we just say “whatever business model, as long as it works and users get what they want”?
Q: Why should businesses charge at all?
A: Because people work hard and deserve to get paid for that work, and folks should give up a part of their own hard-earned money because they get value out of that work.
Q: But why do we need to be paid at all?
A: There are expenses to meet — business expenses, and every employee has personal expenses.
In an ideal world, there would be a free exchange of ideas, services and goods. Unfortunately, this only works for small models, such as a family where everyone pitches in. Communism on a larger scale tends to fail, because someone has to “play Root” and control what gets doled out and when.
As someone with strong socialist tendencies, I tend to feel that we should all try to provide for each other when we can. This is why I like open source very much. Imagine a car dealer giving you a car for free, and then charging for repairs and maintenance. Sure, you could think the dealer would be more likely to give you a bad car, so he could make lots of money, but that’s not the mentality behind open source.
So what models are good for open source? Whatever can keep the company going strong and keeping the overall spirit of open source — helping each other — alive. The license that embedded software end-users buy helps pay for the development that everyone benefits from, even application software end-users who do not buy a support contract.
Being a relative newcomer to the stage, but having some business sense, what would I do if I were designing a business model for an open source company? I think the spirit of open source suggests some kind of “giving back” — but how does one determine how much to give back? Who would be in charge of it? Would there be a certain number of questions on any forum or mailing list one would have to answer correctly? Or a certain number of related blog posts? What about a banner on the website that says “powered by”?
Having worked in development (that’s the fundraising type of development, not the coding type of development) I can say that many people use volunteer goods and services and give nothing back. I like to give time and/or money to organizations I find useful, for me or for others. I would hope that those who can, give back, in the ways they can.
However, of course, Marten needs to eat. So I think in the spirit of open source, any of the following are acceptable, so long as the source remains open and the company keeps the needs of the users in mind:
1) Suggesting donations.
2) Requiring licenses for commercial use (if you make money, you have to pass some along to us).
3) Requiring licenses for special types of usage (ie, embedded).
4) Requiring that the technology be visible (ie, banner “powered by…” on the website and explicit mention of the open source technology where appropriate). This model can be combined with a free model — for instance, “if you tell people you use us, it’s free. Otherwise, pay us.” This method appeals to me the most, but of course it would not work for all technologies or software.
5) Charging for support*
6) Charging for consulting*
7) Charging for packaging (ie, Linux with a library of rpms built that virtually guarantees compatibility)
8) “Lite” or “Express” versions of software for free, with full-featured versions for pay — “freeware” or “shareware”. Trial versions that expire do not count.
MySQL has a great model, in my opinion, because you can buy a license if required, you can buy support, you can buy consulting, you can buy training, and you can buy packaging (MySQL Network gets you a more thoroughly tested binary). However, they offer free webinars, free software, free forums and mailing lists….and free access to their developers, who appear on the lists and forums and fix the bugs tracked.
As much as I do not like to part with my hard-earned cash, most medium-to-large businesses can afford $600/year per server (that they want help with) for the most basic MySQL support. I will not bother comparing database software licensing or purchase pricing; that has been done many times over.
Mostly, I think any model that is actually in the spirit of open source (trial versions that expire are not, although I cannot imagine those would be open source, given that you could then change the code that expires the features) is OK, and one that does not charge excessively….although that, of course, is hard to define as well.
* provided that these are not required to get a working setup in place. For instance, if you need support or consulting to get the product working in the first place, that’s akin to just charging for the software.