Making a living from open source is hard. Correction – making a living from writing open source software is hard – it’s incredibly easy to make a living from someone else’s open source software of course, which is why that’s what most people do
At one time the popular opinion was that pure-play open source companies could make a living from support services, which works to a degree but I know from both my own experience and from that of others that it doesn’t work that well. Again, the best chances of it working are if you’re providing support services for software that someone else writes, because you’re only able to monetise the service, not the development. This actually discourages people from investing in development, and instead merely in deployment and ancilliary services which isn’t actually a good thing for core product development.
The best cases of companies funding open source are where they’re using it to deliver some other product or service which is directly monetised, therefore the open source development comes under their general R&D budget. Google, IBM and others fall firmly under this category, and you can bet that the largest open source software projects are funded this way – Apache, Eclipse, Firefox all pay their core developers like this. But, it requires a fairly significant level of scale to be able to do that, hence why it’s usually the giant corporations that do it rather than smaller companies.
The next favourite option is dual-licensing; the general set-up if you come at this with a commercial hat on, is that you pick a license that a lot of commercial entities will have a problem with extending from (ie GPL), then you sell them an alternative license; the idea being that you get the adoption via the open source license and make money from the commercial license. But, it can be controversial, as most recently discussed by Greg Stein in the Oracle / MySQL case. The argument is that if your commercial license is just a proprietary license, and can be revoked and otherwise monkeyed with by the issuing company (or perhaps more importantly, its acquirers), you have actually been lured into a honey trap – the lure being that open source comes with certain protections, but that if you rely on the availability of the commercial license you actually have none of those and might as well have bought from a proprietary software vendor.
So, what to do? If you’re a small development company, open sourcing your product will definitely bring more people in, but if you’re not in the hosting / cloud business and don’t want to rely on services to earn your keep (who can blame you), what can you do to earn your keep except abandon open source for your main products (maybe splitting your time between proprietary and open source), or dual-license and face accusations that you’re fibbing about the true nature of your product for your commercial users?
Well, I’ve been wondering whether the problem is that dual-licensing typically falls back on traditional licensing concepts, ie that your commercial license looks very much like a normal proprietary license, which has all the problems of ‘what if my vendor changes the license conditions’ etc – when in fact it really needs to be more like a permissive open source license, with a payment condition. One of the great powers of open source is that it is ‘detached’ from the producer and compeltely predictable and immutable – once the software is out there, it can’t be taken away from the receiver and is always ‘whole’ in terms of the source code so no-one is tied in. There are also cast-iron source & binary redistribution clauses that are known up-front, and are again immutable, which mean everyone knows where they stand, forever. Why can’t the commercial side of a dual-license continue to do this, while at the same time generating a revennue stream for the company?
Maybe I’m being naive. But what about this sort of dual-license set-up for a library or toolset:
- Default is GPL (and obviously free)
- Commercial alternative license available, giving very permissive rights, but with these important rules:
- The license is irrevocable once issued
- The right to redistribute unlimited copies of derivative binary works is included with Apache-style conditions
- The right to redistribute unlimited copies of derivative source to anyone under the GPL (for free) is included
- The right to redistribute unlimited copies of derivative source under the permissive commercial license conditions is also included, provided the same original license fee is paid per receiver. Critically, the price and conditions surrounding redistribution may not be altered unilaterally by the licensor at any time after the license is issued (so once you’ve bought it once, the conditions and price for non-GPL redistribution are set in stone and cannot be altered unless both parties agree – say if the price is reduced later)
- All software reverts to the Apache license if the company folds without selling the rights to someone else
This would mean that those choosing to opt for the commercial license would have the same kind of cast-iron guarantee an open source user has that once software is out in the wild and being used under some conditions, that the originator cannot possibly change that, ie take it away or change their right to modify and redistribute under conditions they agreed to at the start. To me, this seems to give the same kind of certainty over not being screwed over in the future as open source does, thus blunting the accusations of proprietary lock-in by the back door, but while generating some revenue for the developer too. It is, in effect, the same as a permissive open source license with the one addition that redistribution of the source to a new party requires either payment to the originator, or reverting to the GPL.
Now, of course there is still potential uncertainty around new versions of the software, but this is no different from open source, where your only guarantee is over what is published right now, not what might happen in future versions.
Does anyone know companies that use this model? My experience is that commercial dual licenses tend to be as restrictive as proprietary licenses, which then can justifiably lead to accusations that the open source license has been used as a shill to get people into a lock-in scenario. Is there really a ‘third way’ or am I missing the point?









December 15th, 2009 at 2:05 pm
Steve,
As always, insightful reading. Thanks!
Your argument of GPL becoming a honey trap for users when the project
copyright holder goes in direction different from where users want to
go is intriguing. For example, some problems that existing MySQL users
could potentially have are outlined in the comments at:
http://juliank.wordpress.com/2009/12/13/mysql/#comments
So would MySQL users have faced the same problems they (potentially)
do now if MySQL were originally released under BSD instead of a
dual-license model? Monty argues that there is more MySQL than simply
the GPL code base, which might be true but I wonder whether a
permissive license would have changed that situation.
Look forward to your comments on this as reply or an idea for a longer
blog post.
December 15th, 2009 at 3:07 pm
BSD, MIT or Apache licensing basically resolves all issues for users, because the conditions are easy to adhere to regardless of the purpose, whilst the GPL can cause problems for companies that want to build software into their larger ecosystem. This is basically why OGRE is going down the MIT route, because it’s easier for users and OGRE itself was never a directly funded commercial proposition, and it’s neither practical nor desirable to try to turn it into one, because it would alienate the community. It’s a widely known fact that if you start off being very restrictive about your software licensing (or about anything in fact), and then come out later with more lenient options, people will love you for it. If you do the opposite, even if that results in the same end point, people will hate you for it. It’s a psychology thing
But in any case, OGRE is firmly in the ‘community project’ space and I’m committed to extending that rather than reducing it. But that works because OGRE is already very mature and is the product of loads of hours of volunteer work (much of it mine).
Obviously I still have to make a living, and releasing everything I do under a permissive open source license, while attractive to me personally, will not sustain a business. Revenue from surrounding services works to a degree, and has paid my bills thus far, but doesn’t encourage much ongoing product investment (other than that which I decide to do anyway regardless), and scales poorly. It makes ends meet, but I’m not going to be able to reliably hire other developers based on that model, nor can I fund more projects this way. However I love the opportunities for adoption and community involvement that open source brings, so I’m constantly looking for ways to square that circle. Add-on products (like OgreSpeedTree) are one way, but again there remains a conflict between time spent on those and time spent on core open source work like OGRE. It’s better, because licensing the add-on can provide a non time-dependent surplus which can be reinvested (unlike services which are directly time-linked which means little opportunity for reinvestment), but there’s still a dichotomy. A dual-license setup for new projects has the attraction of aligning business interests and core open source development interests – but the downside is that you need a restrictive license (GPL) to make it work financially, and so far the commercial licenses have often been as restrictive of rights as proprietary ones – whilst I think they should be like MIT but with a payment clause for transferrance (or revert to GPL).
It’s a fascinating area. Unfortunately most of the online commentators focus on online (cloud) models lately, where there’s a far more obvious way to monetise software directly as cookie-cutter, low overhead services (which are therefore just like products, whilst for non-hosted software like ours ’services’ means time-heavy custom development and consultancy). For those of us in non-hosted software it’s a lot more tricky. You can make other commercial products with the software, but so can everyone else, so where is the attraction of being the person investing in the core? With services being the core developer makes you the ‘go to’ guy, and there’s definitely a marketing advantage for add-ons there too. But is it enough, given what I’ve talked about before on this blog, that most customers are only interested in the end result? Answering questions like this is key to solving the small business open source software production conundrum.
December 15th, 2009 at 5:08 pm
Making money in software comes from two tested methods: products or service.
Dual-licensing while attractive to the original developer for a large buyout is hard for the original developer to accept once the buyer decides to close that product. MySQL is one such example, trueSpace is another (although trueSpace was not open source to begin with).
Captive audiences are essentially what turns small companies into big ones, Microsoft being a prime example.
An in-between seems to be the donation route, like Wikipedia, but that can be revenue risky in tough economic times.
Maybe Ogre can go the Blender route, which is to have products released at regular intervals that people can buy into. For example: printed documentation, DVDs, etc. I support Blender, by buying their materials and their DVDs. In return I get the warm fuzzy feeling and in the case of the DVDs – get my name to appear in their credits list.
just a thought. keep up the spirit. the little I interacted with the Ogre community recently I was surprised at how responsive and friendly it really is.
December 16th, 2009 at 3:17 am
Cleary OGRE needs to start offering a cloud rendering service
As for merchandising, I know there were (probably still are) various OGRE things out there (shirts, cups, etc) – which if I recall, never made much in revenue. And I do recall talk of selling official SDK/docs/etc, but decided against.
I think the best way to make money with OGRE would be with content creation tools. But, there are others already making some products for OGRE + Max, and I don’t know how much they make.
Though, it might be advantageous to really make a game product with Ogre and also sell the whole ‘platform’ as a engine. That kind of marketing/licensing seems to work well for Id / Unreal / etc. Though, that understandably takes a big investment to create an entire engine and game.
- Phil
December 16th, 2009 at 9:32 am
I believe the best money stream would come from a content creation tool chain deeply optimised for the ogre work flow. I also believe I should get a job discussing buzz words
Seriously though, the best advantage of tool sets are that they provide the people with money to spend (businesses, rich hobbyists) the ability to save time with less effort. As you I’m sure know, saving someone time usually results in them giving you money
December 16th, 2009 at 10:30 am
Yep – actually I wasn’t really talking about OGRE specifically here, more about general open source projects and how you might go about funding them – although obviously I have specific experience in OGRE. OGRE will likely never be directly (fully) funded, because of the way it has evolved from volunteer work and the community. The ‘toolset’ idea is one that’s been around for ages, but it also fits squarely in the ‘add-on’ department, and again you have the dichotomy that there’s more incentive to invest time in the add-on than the core, although there is certainly a ‘halo effect’. My musings here were about how you might fund an open source project itself, with a direct incentive to invest in that core and not something else (like add-ons and custom services). Like I say, cloud/hosting services and dual-licenses are the only ones I know of that have that direct correlation. OGRE can’t do either of those of course, so it’s a moot point there and I’ll continue down the (non-optimal) services and add-ons route in that context, but I’m pondering this in a wider context of if I was starting a new open source project today, how I might fund it.
And yeah, merchandising brings in pennies for us, it pays for pretty much nothing
Selling packaged versions also doesn’t really work for something that isn’t in itself an end product, it seems arbitrary for a dev library.
December 17th, 2009 at 4:36 am
As you already mentioned before, you could try finding a large company that supports your Open Source project as R&D. I’m working on the Open Source Bullet physics library thanks to Sony, and I can highly recommend it.
Otherwise I would suggest trying to make products using your Ogre library, mostly obviously games. Perhaps small games for iPhone, PSP or Wii.
June 29th, 2010 at 12:48 am
Another business model seems to be selling the documentation. Kitware’s VTK appears to use that, which I just realized. The have a fairly complicated API and only very shallow doxygen documentation available online (definitely not enough for someone who is not a graphics wizard). However, they sell shiny books for $165 total… which you realize only after you have gotten your students and/or employees locked into their system.