How do Free Software and Open Source developers earn their money? (the FO$$ economy)
This is a rather common question and shows how the software market today is actually quite weird. Before starting, remember that “free” in “Free Software” is about freedom and not about price. People do make money with FOSS. You will see how the development and sale of FOSS is much more intuitive than of proprietary software.
Some preliminary considerations
Let me explain some concepts with short examples. When you buy a hammer, the hammer belongs to you. You can use it whenever you want to, you can lend it to your neighbour, you can replace the handle if it's broken and eventually give it to someone else. FOSS software works exactly like this, really, it's that simple.
When you buy a proprietary software, the software do not belong to you. The software continues to be the property of the company who owns it. The price you pay for the software is actually a sort of rent, you are paying for a license to use it. It is similar, in some ways, to a passport. The passport might be in your pocket but, in most countries, it remains property of the government. It is strictly forbidden to lend it to someone or modify it. There is also an obligation to prove that you are entitled to have it and use it (usually your name is written on it!). This makes sense for passports but does it make sense for software?
The difference between software and objects is that software can be duplicated at almost no cost where objects cannot be replicated so easily. That's just the nature of software. To put it more bluntly, companies that sell licenses of software are making money out of thin air for every copy they sell. Whether companies try to protect against duplication or not, software is copied all the time. Proprietary software just make illegal the act of copying.
Now the difference between hammers and passports is that a hammer is a tool that you use to work and a passport cannot be used as a tool to produce something else. There's no doubt that software is a tool that is used to achieve a task. Isn't it surprising that proprietary licences forbid you to use your tools the way you want to? It might not be so obvious for people who know little about software development but never forget that, even if you don't develop software, you benefit from the development made by other people.
I hope you understood the concepts here. Let's see now how the FOSS economy works.
The different economic models of FOSS
Pay the developer:
When you need a software you can hire a developer to build that particular software for you. The software will belong to you and you are free to distribute it to others or not. The developer got his payment and you got your software. Once the software is under a free licence it is forbidden by law to distribute the software as if it was proprietary, of course. In other words, you can sell the software for the price you want but you cannot sell only licenses to use it. The person to whom you sell the software is free to re-sell or even distribute it free of charge. This is fair enough, after all the developer could have sold you only a license in the first place. With Free Software you must grant the same freedoms that you enjoyed to the next owner(s) of the program.
With crowd funding a developer can hope to gather enough money to pay for the development costs without having a specific sponsor. The principle is that someone with an idea (not only software developers) expose his project to the world and sets a minimal amount of money to be able to carry out his project. Anyone interested in the project can chip in a share to pay the developer. Such method distributes the cost among the users and is situated somewhere in between a donation and purchase. It is a sort of donation because once the product is finished it will be distributed for free, but it also resembles a purchase because you pay for something that you do not have.
If you chose to distribute a FOSS to the public, every user will own the software and are free to distribute it free of charge if they want to. In this situation it's hard to charge for copies of the program. What you can do is to sell training or support for the given software or sell services that are part of the software (e.g. sell music through a free media player). Remember that you don't spend a cent for an extra copy of the software. Services on the other hand are needed and valuable all the time. They give jobs, often for the people who developed it and understand exactly how it works. In the end, the more popular your software is, the more work you will have and the more money you will earn selling services related to it. It's good for you if people copy the software, distribute and use it!
When you offer a Free Software you are advertising your skills and high quality work. People that appreciate your software might consider to hire you (or your employees) to develop other programs. Instead of investing in advertisement campaigns, invest in programming and in doing a great job!
Many FOSS projects earn money exclusively through donations. This leaves the user free to give something or nothing at all. Although the user knows that, in the short run, the software won't be any better independently of the amount of money he puts in it, in the long run, projects that receive a lot of donations will be able to put more manpower into it. Donations though are not a rocket science and I don't blame those who don't count on altruism to fill their fridge.
There are other ways through which companies make money that involve the use of patents and restrictive licenses. I won't include them here because the scope of this article is to show how to make money exclusively with FOSS. Feel free to contribute with other ideas in the comments!
Wikipedia article about business models for open source.
GNU article about selling Free Software
A very good article written by a programmer about free distribution.