Well, I'm sorry you aren't imaginative enough to design a business model which generates revenue from anything other than controlling the supply and charging admission prices.
Some ways to milk $ out of free software include:
- Being the de-facto expert in your product (hello sweet 6-7 figure consulting contracts when an Enterprise picks it up)
- Training
- Tech support (hand-holding)
- Publish books about the subject
The list goes on. If enough people adopt a free software project, that doesn't preclude the person (or persons) who release it from turning a profit. It just ensures they can't do so at the expense of the liberty of their users.
For some things this may work, but if someone's going to be investing 6-7 figure consulting contracts, and the code is open and free, they'll eventually replace you with someone else in-house.
* Training
Isn't a recurring or ongoing stream.
* Tech support
If you design your product/service well enough, people probably won't need much hand-holding. Or... someone else will take the code and make a better version that doesn't need the hand-holding, and win your potential customers away.
* Books
Again... not really recurring.
Yes, there's ways to make money, but none of these are terribly good business models. Books? Entire massive companies based around books are folding or shrinking. Suggesting that someone's business model be based on books is... weird.
And when the code is open, you'll face more potential competition than if the code was closed.
ACK - I missed your 'milk' phrase. 'Milking money' just doesn't scream 'solid business model' - it screams out "petty vendor who will nickel and dime me to death".
> they'll eventually replace you with someone else in-house
Yeah, that's why you don't put all your eggs in the same basket :)
> ACK - I missed your 'milk' phrase. 'Milking money' just doesn't scream 'solid business model' - it screams out "petty vendor who will nickel and dime me to death".
I view business as inherently evil and selfish. I am choosing to engage in business because I don't care about being good.
Offering something of value for a profit is not evil. It may be considered selfish, but it is also selfish to offer something of value for free to gain moral high ground, peer recognition, and resume fodder.
Being selfish isn't evil; survival isn't evil. You live in a community that has rules and values, and if you live in the spirit of those rules and values, being selfish isn't causing harm, and in most cases, helps others. When a business bends those rules, or breaks them with no regard for the community, that can be considered unethical and in some cases "immoral" and possibly evil by some definitions.
If your business model doesn't take advantage of customers, employees, or the surrounding community, you probably have a good business plan.
#1 is being a consultant. #2 is being a teacher. #3 is being a consultant. #4 is being an author. None of these involve making money off the software. They all involve side businesses with about as close a relationship to the software as I have to the cereal I ate for breakfast this morning. If I'd starved to death, I wouldn't be working right now, but I don't say I eat cereal for money.
Open Source business models exist, but they are nowhere near lucrative enough to sustain all software developers. Who are you supposed to train or publish books to if every developer is somehow trying to eke out a living in this "open source" world?
Well, the above is "business models that could support creating a new project" - in principle one can also eke out a living extending and adapting other people's projects for people willing to pay. Indeed, a huge percentage of programmers currently ekeing out a living programming are already effectively doing that, often in situations where things are proprietary only by default (as in, it's license says you can't share it, but if its license said otherwise it still wouldn't be shared because it's too specific to what one particular company is doing).
No need to be condescending. I've actually been researching this a fair bit lately for a new project.
What I found was that even though people parrot the revenue models you list above, the reality is that it is far more risky to go open than to "control the supply".
The margins on services (consulting, training, support etc..) are much lower than selling the code.
I've created closed source software for many years now, and we've happily reduced our costs by incorporating open source software (where the licenses permit). We've also paid for proprietary libraries.
I would be surprised to find anybody doing serious development without relying on open source software somewhere.
And the companies I've worked for have generally been very willing to release code as open source, partly for goodwill and advertising (we've received several job applicants who only learned about us through our contributions to open source projects), and partly to avoid the cost of maintaining an internal fork of, say, Boost or JQuery. Even if you can't open source the whole kaboodle, it's often possible to release something, especially additions to existing open source projects.
Even if you release some stuff as open-source, if "the whole caboodle" is not free software, then you're still one of the proprietary software vendors Stallman is railing against.
The trick is not to take it personal. I don't care how much Stallman is railing against proprietary software, I care about how he seems to have an uncanny ability to have the longer view and to see what misery will come from a blind continuation down a certain road. As always there is middle ground, extremist positions have use, they show you the spectrum rather than just their position.
personally, i don't owe it to anyone to release my copy the source code as long as i am using the product of the source code privately. for example, let's take a point of sale. at the broadest possible sense of imagination, my pos operators have a standing to demand to see the source code. at no point in time does a customer, who does not directly interact with the pos except in handing my operator their money have a right to look at my source code. richard stallman would, i hope, agree that he does not have a right to look at it either.
free software to me does not mean free for all. a person and an organization can still keep its secrets. (corrections welcome)
I wasn't trying to tell people how to be Stallman's friends, or how to get absolution (for whatever wrongs) by following the FSF's advice. Instead, I want to encourage people to pick their battles. If you can't get permission to release your full program as open source (or, if you plan to become rich and don't see any way to do so after you've published your source code), then perhaps whoever is responsible for the decision would be willing to release less than everything today.
If the product is created easy to use, there is no reason to buy a book, to require technical support, or require training.
Consider an open source photo sharing application. You distribute a system so easy that anyone can set it up. You hire people to do user studies to make the (AGPL) web application just work.
The more money you spend making it easy to set up and use, the less money you are able to collect for training, tech support, and books.
Anybody can do what you are mentioning. Competition is fierce and training and tech support aren't scalable for a small shop.
You also forgot to mention the culture behind many Foss projects: profit is seen as evil and your project will get forked, the second you try to turn a profit.
Foss users expect free support, bug fixing, and software. Part of the entitled generation of internet users.
If you want to make a living, proprietary services all the way.
Yes, that's the point of free software. Everyone can.
> Competition is fierce and training and tech support aren't scalable for a small shop.
I think you're underestimating the degree to which most of the world outside of IT (and including much of the world inside IT) is too lazy to figure it out and would rather pay money for a black box that solves their problems.
> Foss users expect free support, bug fixing, and software. Part of the entitled generation of internet users.
Not all of us do. And if your audience is companies, not users, the goals align differently.
"Yes, that's the point of free software. Everyone can."
So by open sourcing my product, I am opening myself up to all sorts of competition. Not a very smart way to run a business.
"I think you're underestimating the degree to which most of the world outside of IT (and including much of the world inside IT) is too lazy to figure it out and would rather pay money for a black box that solves their problems."
You're right. But if anyone can do it (mentioned above), it will eventually be a race to the bottom (based on cost) when software is equal.
"Not all of us do. And if your audience is companies, not users, the goals align differently."
I run a business. I wouldn't hire a 1 or 2 person shop for support of an open source project. I have had way too many bad experiences.
When you are just starting out, it's hard enough to make money. Why make it even more difficult by increasing competition and doing something that will not scale well?
I saw this in one of your other posts:
"I view business as inherently evil and selfish. I am choosing to engage in business because I don't care about being good."
I wish you would have said this in the first place. I would have not wasted the time responding to you.
What if you're a coder who has no interest in any of those things? Many people get into SaaS specifically so they don't have to work with bureaucracies any more.
Book publishing can sometimes be alternative, but what if your code is so intuitive and easy to understand that no one needs a book about it? Or what if you're a bad communicator and someone else writes a much better book?
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.
Maybe because when you give people the right to freely copy, use and redistribute your code it's a bit hard to then ask them to pay for it.