Mixing Open Source & Business – my take

Business, Open Source, Personal 17 Comments

Bruce Byfield wrote an interesting article (discovered via Matt ‘Alfresco’ Asay’s blog, which should be required reading for anyone in this field) about the sometimes unsteady alliance between open source and business that, on the whole, I agreed with – within a given context. I do think, however, that his context was weighted towards the larger players in market that are fusing open source with business opportunities though, and wanted to share some of my experiences and conclusions from the perspective of a more individual player in the business.

Apologies for the length of this article, I had a lot to say :)

Public Companies And Priorities

I happen to believe that publicly-traded companies are the worst example to take when comparing and contrasting the balance of ideals versus commerce, because they are essentially at the far right end of that scale; at the end of the day, those quarterly results and their effect on the share price trump all other concerns, when push comes to shove anyway. In this environment, it’s not surprising that Bruce considers it inevitable that business considerations will inevitably trump open source principles.

I think that in private companies there’s scope for more balance, if the company owner(s) are on board. That’s not to say private company owners don’t want a return on their investment of course – it’s just that it’s at least possible that they’re close enough to the original ideals of the company to decide to sacrifice a little profit in favour of other priorities, should they want to (and assuming it doesn’t put them out of business).

Balancing Business and Community

However large you are though, there’s absolutely no doubt that developing a sustainable business from open source is hard. I do think that business and open source can co-exist without hurling philosophical rhetoric at each other every 5 minutes, but there are challenges. Let’s assume for a second that a business is investing in developing open source, and see what the parties get out of it:

The business gets:

  • Free, mostly positive publicity if they respect the community
  • Contributions & help with support from volunteers in the community
  • The opportunity to sell products & services to supplement the open source core

The community gets:

  • Some (hopefully) good free software – free from cost is good, freedom to modify & distribute is better
  • Underwriting of costs for things like hardware & hosting for the community site, publicity at shows etc
  • Access to extra support services – many corporate users find this a reassurance even if they don’t end up needing it because the community meets their needs, it’s a ‘safety net’ of sorts

It’s actually a pretty fair trade. In fact the lines between open source and business are often very blurred – both myself and others I know sit in both the business and volunteer camps, contributing time and code freely one day, selling products and services another – and again this is mostly because we’re small business owners with a blend of personal and commercial interest. Both sides are necessary, and both sides benefit.

But how exactly should a business which invests in developing open source make money? This is something I’ve given a lot of thought to over the last couple of years, and have been experimenting with. The glib answer from most Free Software types is that all software should be free, and we should all make our livings from support services. It’s a nice idea, but it suffers from one tiny flaw: it doesn’t work.

Why Services Can’t Support Core Development

A pure services model cannot support core development of an open source product because there is no business incentive to invest significantly in the core open source product.

If all your revenue comes from support (help-desks, training, deployment etc) or contract development (the result of which is almost always proprietary to the person hiring you), next to none of your revenue is related to forward development of the open source project itself. Sure there’s a halo effect of upgrades, but if the core project is stable enough (and if there is services demand, it always is anyway) it’s actually not that big.  It’s actually more profitable to be an outsider to the open source project selling those services, because you have no costs associated with maintaining the core, and just derive revenue from the value-added services – skimming off the cream, basically. Someone has to maintain that core though, otherwise no-one gets to do any skimming – but who? Volunteers in the community certainly contribute hugely, but it takes a certain level of commitment, continuity and stability from a core to really tie it all together into a cohesive whole. But there is no service I know of that involves customers paying towards this effort except donations, which while very welcome, are by no means enough to feed / clothe even one developer. You can divert money to core open source development from commercial services, but it’s hard to stay competitive that way.

The Misleading Example

Some people might point at Red Hat as proof that you can have a lot of core developers on staff while making a living from services, but they’d be wrong – Red Hat in fact makes the vast majority of its money selling a product (Red Hat Enterprise Linux), which has at times been thinly disguised as a support service.

And you know what? There’s absolutely nothing wrong with that. Red Hat have found a way to make a living while contributing massively to the open source community as developers, and I applaud that. But it’s important to recognise how they do it – not through services (although those no doubt supplement their income), but primarily via product sales. Again Matt Asay discussed this a few years back and I really wish I’d read his article earlier!

My Conclusions

I’ve been trying to make a services model work to help subsidise spending the level of time I want to on the OGRE core during daylight hours. It hasn’t worked that well – the work time I’ve managed to spend on OGRE (to free up my spare time a little more than in previous years) has been possible purely because I own my company and am willing to forgo a little paying work now and then, and there are no external investors to bark at me about it :) Most of the time though, I’m still working on OGRE in my spare time just like everyone else, I just feel a little more responsibility for it than most.

My services business pulls me away from core development more often than not, because I need to do a certain amount of it to keep me going. Funding working days spent on OGRE is like trying to constantly fill up a leaky bucket – tiring and never-ending. I need to do it to keep the level of commitment I want to the project without destroying my personal life, but it’s not sustainable. I’m glad I read articles like Matt’s because they give me confidence that it’s not just my failure to see a workable model – it’s that there probably isn’t one that is based on services alone.

So What to Do?

Clearly, services are a valuable part of any open source business, but if you’re developing the core, they can’t be your only source of revenue.  To grow a sustainable business that allows a level of stability and modest expansion both within and around the development of the open source core, you have to get involved in selling products, which ironically probably means non-open source.

There are 2 main options here – dual-licensing and closed extensions / tools.

Dual-licensing

Many free software advocates detest dual-licensing because it goes against their philosophy that all software should be free. That’s all very well, but I’m afraid the world is yet to be convinced on that front, and to be honest the impracticality of supporting development wholly through a services-only model undermines their case quite significantly and suggests it’s mostly rhethoric. Poster-children like Eric Raymond might be able to support their development activities by writing books and doing the speaking circuit, but few of us have that option.

Generally, I think having the option of choosing between a free license and an alternative license is good; people who want free software can access the software on those terms, those who wish to dodge those conditions can do so in return for financially supporting development. There are a couple of sticking points of course, the first being the way it’s presented – I’m still not keen on the way some companies say that if you’re a ‘commercial’ user you can’t use the open-source version. That’s actually inaccurate most of the time since the GPL doesn’t stop you making commercial apps, provided you adhere to the GPL conditions. The second is whether the community is happy to continue contributing when a company potentially makes revenue from releasing an alternative license. Generally I think the principle of fairness governs this, comparing investment by the company versus that of individuals in the community.

Selling Closed-source Add-ons And Extensions

This is simpler than dual-licensing since it has none of the sticky issues, but conversely since the revenue is related to development of add-on tools rather than the core, it to some extent suffers from the same issue as services, in that it doesn’t driectly fund core development. However, there’s a difference, in that unlike service provision there is growth potential available which is not necessarily directly linked to resource usage, leaving more potential for subsidising the open source project.

When you’re supplying contract development services for example, you only have a finite amount of contractor time to sell, and time spent contracting is time that cannot be spent developing the core – they’re constantly at odds and no matter how long you do it, that never changes. Conversely, once you’ve invested the time developing an add-on product, you can sell it to many people over time and generate revenue in parallel with diverting time to develop the open source core further, perhaps even in a self-sustaining cycle between core and add-on offerings. This kind of ebb-and-flow setup is generally impossible with service provision, unless you’re lucky enough to sell a lot of yearly support contracts that nobody calls in on (very unlikely).

My Way Forward

We already offer a dual-licensing set-up, but we deliberately don’t promote it heavily since most of the time, the LGPL is fine for most commercial uses, and I certainly don’t intend to start telling people they need a different license when they don’t. It’s possible this area might become more popular, but ironically as an open-source advocate you don’t want it to become too popular, because you’d really like for people to embrace open source wherever they can and not default to avoiding it. Therefore this is a useful occasional supplement (which so far has just covered legal costs and some hardware / hosting) but not a main line of business in our case.

Far more likely to succeed for me is the add-ons approach, and OgreSpeedTree is an example of this. I still distribute source code for this to licensees, because I believe as a developer that you should have access to rebuild libraries you base your work on – but even so it’s not open source, because you have to part with some money to get access to it.

So, whilst my contract and support services will continue, I will be exploring commercial add-on opportunities like OgreSpeedTree more over the next year I’m sure. OGRE will remain as my hub – although I certainly don’t rule out branching out to other things too (I always have ideas rolling about in my head, often in very different fields), OGRE is an 8-year project of mine so far and doesn’t show any signs of stopping yet, and I have a rather strong attachment to it. I’m certainly hoping to find a sustainable way to increase investment in the core open source offering, in collaboration with the community, while still putting food on the table and having a personal life.

Final Thought

Again I apologise for the length. I’ve learned from experience some of the boundaries and practicalities that go with blending open source and business from a core development perspective, and I’m sure I have plenty more to learn. With any luck you got something positive or at least thought provoking from this post.

And if you’re a Free Software die-hard wanting to lambaste me for being a sell-out; save your breath and instead educate me on your methods of making a living developing open source, because I’d love to know (unless you’re employed by Red Hat, in which case I already know!).  And no theorists/philosophers please – unless you’ve actually done it, I’m afraid your voice will carry little weight.

17 Responses to “Mixing Open Source & Business – my take”

  1. btmorex Says:
    August 29th, 2008 at 12:07 am

    Very interesting. Have you had any luck getting companies using OGRE to pay for core development (bug fixes, features, etc.)? I guess that falls under services, but not all services have to be external to the core product.

  2. Steve Says:
    August 29th, 2008 at 8:17 am

    Very, *very* occasionally, someone will request a feature that goes back into the core, but it’s a tiny minority of the sort of work that is requested. Companies are very rarely willing to spend their money on core features that are then available to all – the majority of the time they only want to pay for things that they exclusively own, which is understandable given the pressure’s they’re under. We do of course get patches when they develop features internally and then decide to release them because it’s more convenient, but these tend to be quite small things most of the time.

    Take Dx10 for example. Only a minority of people have a practical use for it, since the level of Dx10 capability in the general PC owning public is still vanishingly small, but I’ve had a couple of companies asking for it. When I ask if they’re willing to even partially sponsor its development, because it’s a minority demand, they go rather quiet. And bear in mind that these companies are very large, household names and certainly not short of cash on the whole, and have sponsored other open source projects (albeit very, very large ones). But the teams that are working with Ogre have small budgets and can’t afford to spend it on core open source development. They’ll ask for Dx10, but only if someone else does it. That is the sad reality.

    Google is the only company that has been willing to pay for core open source development of OGRE (via the Summer of Code), which is ironic because I don’t think they use it! I’ve come to the conclusion that the only company that’s going to invest long-term in core OGRE is my own, TKS.

  3. syedhs Says:
    August 29th, 2008 at 8:31 am

    I do agree that commercial addons is a fine business venture for you Sinbad. Maybe you can further develop a commercial complete pipelines tools which are based on 3dsmax for an example.

    I have been thinking about this for a while…

  4. Paul Evans Says:
    August 29th, 2008 at 8:37 am

    A very thoughtful well written essay.

  5. Paul Says:
    August 29th, 2008 at 12:00 pm

    My fairly obvious and completely selfish take on this as an Ogre user:

    I absolutely love the fact that you get paid to work on Ogre. What and by who, to me it doesnt matter, but by actually _using_ the code that you have developed can only be a good thing – it equates to real life testing, probably resulting in tweaks and bug fixes. As long as Ogre remains opensource and you remain happy doing what you do, then its a win win.

    Finally when the day comes that I am in the position to pay for the services that Torus Knot has to offer, I will do so without a moments hesitation.

  6. rodif Says:
    August 29th, 2008 at 12:56 pm

    Nice article Steve. I’ve been thinking a lot about this topic lately. I do think there is a delicate balance with offering ‘Closed Source Add-ons’. If a new idea comes up it could either be implemented as a addon or a core feature. Which do you choose. I have seen some projects in the past take this route and have the main developers hold back some features as addons just to sell. Which has left a bad feel. Not that OGRE is going this route, but someone can forsee that to use OGRE effectively you need to purchase X addons just to get up and running.

    Well anyways nice writeup. I’ve been struggling with these concepts myself lately.

  7. Steve Says:
    August 29th, 2008 at 1:11 pm

    I’m perhaps fortunate here because there’s a pretty clear line with OGRE about what is core and what isn’t. We’re very specifically a graphics engine, so it’s usually pretty easy to determine what gets included in the core and what doesn’t. We’ve been ruthless about defending the scope right from the beginning of the project, and the rules are actually exactly the same whether the code is open or closed source (hence the Ogre Add-ons area, which contains a ton of open source addons but which are still considered out of the scope of OGRE itself).

    So I think this is fairly easily avoided in our case, but perhaps not so easily for a project with a wider scope. I don’t think there’s ever a scenario where you *have* to buy something to make OGRE useful, simply because OGRE’s been actively used for years! If a commercial add-on was truly ‘essential’ (and I can’t envisage a situation in which that’s the case), I’m sure someone would make an open source equivalent of it. I’m only expecting ‘nice to have’ things to be in the commercial add-on category.

  8. Karter Says:
    August 29th, 2008 at 3:08 pm

    Nice article. Can you elaborate what you mean by:
    Underwriting of costs for things like hardware & hosting for the community site, publicity at shows etc
    ?

  9. Steve Says:
    August 29th, 2008 at 3:18 pm

    It means my company pays for the hardware & software I use to develop & test OGRE on, pays for the website (ads & donations cover only about 60% of the cost), and for example has paid for my ticket to Siggraph where I held an OGRE get-together in the past. Any time I need something for OGRE, my company usually makes up any funding shortfall. That’s what ‘underwriting’ means.

  10. KungFooMasta Says:
    August 29th, 2008 at 5:27 pm

    What about allowing funding for open source addons? For example, if people want X, you say it takes Y funds for you to work on it, and people pool together money to make it happen. Is this feasible? I’m probably ignorant on this, but right now I can see that people can donate money to Ogre, but do they know how that money is spent? Maybe if we did research on what people want, or how they want the lib extended, you can propose funds needed to focus on and implement X. Well, just an idea, I’m more likely to buy into that then the SpeedTree addon, but maybe its better to focus on people that have these needs, that are more serious about spending money for these tools.

  11. Steve Says:
    August 29th, 2008 at 5:43 pm

    Right now 100% of the donations go into funding the site costs – it’s running on a dedicated server with support backup which means it’s more reliable than it used to be, particularly when I’m away. That all costs moolah :) There’s always a shortfall every month, my company makes that up. We’ve had a coupel of corporate donations, and those were used to buy test hardware.

    Donations are great, but don’t expect them to support serious development, they’re simply not numerous enough for that.

    Places like BountySource have tried to set up collective ways to fund development, but I don’t think it works that well. I do research on what people want all the time, and the answer I almost always get is that most want it, but aren’t willing to pay toward a developer’s salary for it if it goes into the core (corporations, that is).

    It would be nice to think that enough people in the community would be able to reliably fund development of the core and add-ons, but seriously, don’t give up your day job on that dream, you may be on the street quite fast ;) Realistically most of us will have to have other sources of income to fund our open source contributions, whether that’s selling other products, having a day job, etc.

    Unless you work for Mozilla in which case you’re lucky. Google just renewed their multi-million dollar sponsorship for the next 3 years. It’s allright for some eh? There’s a top 0.01% of projects that get this kind of unilateral support, but most of us can only dream of it.

  12. przem Says:
    August 29th, 2008 at 8:26 pm

    Dear Steve,

    I think that a GUI editor for ogre scenes or projects in general , would be a great commercial offering.
    Something along the lines of now-dead ‘Visual Ogre Studio’. Perhaps with C++ project generator. Hope you get the idea.

    I am sure that such product would be a huge winner:
    1. It would come from you, recognized, trusted Ogre project leader
    2. It could be more intimately tied with Ogre
    3. It should be always up-to-date with newest Ogre versions
    4. Unlike competition (visual.net and such ), this studio would not require .NET to be used with finished products

    A great free library and commercial editor to get thing going quickly – each driving each other’s progress. Sounds like a killer to me. I want it already.

  13. Steve Says:
    August 29th, 2008 at 8:34 pm

    I agree, and I actually started one of these but I was way too ambitious. I had what I still think is a great idea for a new way of designing levels, but I had some serious problems with the implementation, partly because it was so different, and it was just becoming like quicksand. If I go back to that subject, and I may do, I will aim at a more tried and tested kind of target initially and save the revolution for later ;)

    You’ll actually find the core structure to that editor as open source now, minus all the bonkers things I was trying to do with it.

  14. Nicholas Says:
    September 6th, 2008 at 5:54 pm

    Trolltech seems to be a commercial company that has a successful business model based on an open-source software library. There is however a difference between: Qt is dual licensed using the GPL, whilst Ogre is dual licensed using the LGPL.

    May I be so bold as to suggest that a possible solution would be to change Ogre to GPL? Such a change would clearly be temporarily unpopular by a large group of people (look what happened when the ExtJS team moved from LGPL to GPL), but it would ensure that closed-source professional users of Ogre would need to pay to use it.

  15. Steve Says:
    September 6th, 2008 at 6:24 pm

    Thanks for the suggestion, but not really feasible at this point. We’d need the approval of all contributors and I doubt we’d get it. In any case, OGRE’s popularity was based on being open to use in more situations than GPL allowed, I do think that LGPL is a pretty good balance for a library. A full application would be something different though.

  16. SteveStreeting.com » Blog Archive » Great video on making money as a startup Says:
    September 8th, 2008 at 10:45 am

    [...] to all kinds of product. It also dovetails in nicely with what I was saying a few days ago about open source and business, in that there are similar arguments about not believing the hype we’re often sold by [...]

  17. SteveStreeting.com » Blog Archive » This would never happen on my watch Says:
    October 30th, 2008 at 9:08 am

    [...] talked about business models and open source before, and that it can be necessary for companies like mine to mix in some proprietary aspects [...]

Leave a Reply