What I write below is based on my real-life experiences.
I had a NoSQL database startup called Scalien for ~4 years.
There was a lot of competition (eg. MongoDB), most of it was opensource, so we were opensource.
This was also in line with my feelings: I'd like my work to reach as many people as possible.
You cannot sell opensource software itself directly because it's free.
What you can sell is:
1. 24/7 support
2. Enterprise/proprietary features
3. Consulting/custom development based on your product
Problem is, in this business model (called "enterprise opensource software"), you're not getting paid for writing the core software product itself. Your clients expect you (or somebody) to just do that for free.
A more nuanced problem is that those 3 types of revenues only scale linearly: if you want to support 2x as many customers, you will have to hire 2x as many support engineers. Your profit margin will not increase as you add customers.
Towards the end of my startup I had a shocking insight. Given the above revenue channels, I should have just tried to be the n+1th Hadoop vendor and screw my own product. That way _I_ don't have to invest my time to work on the core product, which doesn't get me revenue anyway. I can just concentrate on the revenue generating stuff. And Hadoop was already an established opensource project anyway.
In the end I didn't do that, because I wanted to have a product company, not a support/consulting/custom development company. And there was already Cloudera et al. The company failed.
More generally, there's no good incentive to develop a new opensource product if you want to make money off it. If you try to, you will spend a good deal of your time writing the core product for free, taking on the huge risk of first trying to make it a successful opensource project (not business). Then, if and when it becomes a successful opensource project (a big if), you will split your resources between working on the core product "for free", and the 3 channels above, which will actually make you money.
I'm not saying you can't make money. You can, but it's not fun, and it's not working on the core product.
If you also try to write the core product itself (like MongoDB), you're taking on a huge, time-consuming initial risk, unlike in SaaS where you can be lean, learn and iterate with 100 customers.
I think SaaS is a great business model, much better than software products.
It's good for opensource, too: SaaS companies opensource tons of software.
For example, I work at Prezi now, and we opensource lots that isn't the core presentation product itself:
Competition in open source is much more fierce than outside of it, and that is a good thing. Imagine if your company had not been an open source company but rather a closed source company. Instead of being able to bootstrap you'd have to start with getting a large bunch of money on an idea that already has an open source equivalent. The chances that you'd fail would be roughly identical to doing it the open source way. But all your former customers would be left high and dry when you folded. That is what open source is all about, it is not about the providers, it is all about the users.
Sorry to hear you didn't make it, but your work will live on now, probably forever or as a part of some other offering, it may be small consolation to you but to me it proves the system worked.
My software didn't take off as either an opensource project or a business, so when we folded, the former customers would have been left high and dry anyway. "Fortunately", the reason for the final fold was that the last customer left, so at the final hour the set of former customer was empty.
The work lives on as a github repo that nobody cares about.
I'm not upset about it today, I learned a lot, but that's how it is.
I think you missed my point. The fact that the repo still exists is all that would matter to your former customers. They could download the code and fix the problems themselves (hopefully contributing back to the codebase by re-releasing their fixes).
I have a long list of 'failures' behind me, not a single one I would care to repeat but also not a single one that didn't teach me something, I always cherish the thought that the failures eventually led to the opportunities that worked out and that without them those wouldn't have happened either. For the same money you would have had the next mongodb.
I know you know what you're talking about, but I'm having a very hard time following the train of thought here.
> Imagine if your company had not been an open source company but rather a closed source company. Instead of being able to bootstrap you'd have to start with getting a large bunch of money on an idea that already has an open source equivalent.
Why does starting with the stronger revenue model mean you need to start with getting a large bunch of money rather than bootstrapping? AFAIK software with a revenue-generating license costs the same to develop as free software.
> Sorry to hear you didn't make it, but your work will live on now, probably forever or as a part of some other offering, it may be small consolation to you but to me it proves the system worked.
Why would anyone want to participate in a system whose goals prioritize strangers getting gratis database software over our families being able to eat? I'm all for generosity, but I'm also for looking after yourself and your dependents.
> Why does starting with the stronger revenue model mean you need to start with getting a large bunch of money rather than bootstrapping?
Because enterprise sales are hard. Open source can get in through the back door, but closed source has to beat a path through the front door and that costs money, lots of it.
> Why would anyone want to participate in a system whose goals prioritize strangers getting gratis database software over our families being able to eat?
It's not about your families being able to eat or not. You can find plenty of middle ground, or you can decide to contribute to open source just to scratch your itch or fix your bug. That's why it works well for some kinds of software but not for all kinds of software. It works well for:
- best of breed infrastructure projects (runners up have the same issues they have in commerce)
- libraries
- frameworks
It does not work well for things where bespoke software is the norm or where the customer wants to have their own IP. For those situations traditional closed source software works better. That's why you're going to have a hard time finding a quality CAD/CAM system using open source that is tightly integrated and polished.
There are middle grounds: Blender famously used the ransom model to become open source, entire empires have been built on service companies around open source and some people made pretty good money selling their open source projects to the highest bidder (glusterfs, mysql and a whole raft of others).
So nobody is forcing you to give your work to others so your families can't eat, it's a free choice. I decided very specifically not to contribute to open source because I wanted my family to eat, though I do file the occasional bug report/patch (and the way in which those are treated is not very encouraging to do more of it). But at the same time I'm grateful for everybody that did contribute to open source, they enabled the web as we know it to a very large extent and to discard or devalue that is a huge mistake.
You cannot sell opensource software itself directly because it's free. What you can sell is: 1. 24/7 support 2. Enterprise/proprietary features 3. Consulting/custom development based on your product
Problem is, in this business model (called "enterprise opensource software"), you're not getting paid for writing the core software product itself. Your clients expect you (or somebody) to just do that for free. A more nuanced problem is that those 3 types of revenues only scale linearly: if you want to support 2x as many customers, you will have to hire 2x as many support engineers. Your profit margin will not increase as you add customers.
Towards the end of my startup I had a shocking insight. Given the above revenue channels, I should have just tried to be the n+1th Hadoop vendor and screw my own product. That way _I_ don't have to invest my time to work on the core product, which doesn't get me revenue anyway. I can just concentrate on the revenue generating stuff. And Hadoop was already an established opensource project anyway.
In the end I didn't do that, because I wanted to have a product company, not a support/consulting/custom development company. And there was already Cloudera et al. The company failed.
More generally, there's no good incentive to develop a new opensource product if you want to make money off it. If you try to, you will spend a good deal of your time writing the core product for free, taking on the huge risk of first trying to make it a successful opensource project (not business). Then, if and when it becomes a successful opensource project (a big if), you will split your resources between working on the core product "for free", and the 3 channels above, which will actually make you money.
I'm not saying you can't make money. You can, but it's not fun, and it's not working on the core product. If you also try to write the core product itself (like MongoDB), you're taking on a huge, time-consuming initial risk, unlike in SaaS where you can be lean, learn and iterate with 100 customers.
I think SaaS is a great business model, much better than software products. It's good for opensource, too: SaaS companies opensource tons of software. For example, I work at Prezi now, and we opensource lots that isn't the core presentation product itself:
https://github.com/prezi