How can I write freely available open-source software and make a living from it as well?
How are you doing it if you are already? Do you charge for support services?
How can I write freely available open-source software and make a living from it as well?
How are you doing it if you are already? Do you charge for support services?
You could get a normal for-profit job and do open source development off hours.
Just make sure you align your priorities correctly.
Get a decent job that pays the bills and write the open-source stuff on the side :)
Some existing models: You can charge for support, detailed documentation, customization, or look into dual licensing to charge commercial users. It is also common to accept donations.
I know three kinds of people living out of open source:
These are all difficult paths, I'd start with a project on the side and see if it grows enough for one of the three alternatives outlined before happen to you. (I wouldn't count on it)
Do it as a student or if you hit an unfortunate moment of unemployment. The benefit will come from having the software on your resume, and it will also keep you up to date with current technologies.
If you write software as open-source, but work full time on it, you could get money by providing integration services involving your software. Or providing service on a server for users of your software. Or so on.
Mostly though, I think people do it in their spare time for fun.
Whenever I see a interviewee with an open source project on their CV/resume (this does not happen very often) it always scores a plus point before we discuss anything else. I won't necessarily be able to have them work on their project in work time - but if there was an overlap (or the possibility of one), I'd be happy to at least consider extending a specification to allow them to work on it.
in that order.
How you get 3) to work is far less clear, but for every person making a living from their open-source project, you've probably got a different model.
I personally spend a lot of time working on free modules content for the DotNetNuke open source project, and volunteer for the Documents module project sponsored by the project.
I create a balance in the following manner.
Overall though the key is to find a balance that works for you, I have found that it is really best suited for hobby related development unless you REALLY have an active user community that is willing to pay for things, but that doesn't happen often in open source.
I cracks me up that Mark Shuttleworth, the money behind Ubuntu, evangelises the culture of open source. Of course he can, he sold his commercial company for a gazillion dollars and doesn't ever have to earn a cent out of software ever again. If I had that much money in the bank I would also do open source - and have a lot of fun doing it. I just can't take anything that mark Shuttleworth says seriously.
This is a question that I have grappled with for years, but I can't reconcile the culture with the need to actually make a living and there are very few examples of people who have made it in open source. Obviously you're not going to get rich, but it would be great if you could at least make a living.
To answer the question, it seems that the only way is to do OSS part time while you work at a paying job. Then you hope that your product makes it and you either get picked up into a better paid job or make some money off support/training/consulting. The former is more likely.
Work on customizing applications!
There are lots of firms who need a custom design. In this area the possibility to copy code for integration is an advantage for you against closed source developers.
I am thinking in the CRM, ERP, or so world. For example, Openbravo, is an open source ERP but services are not free: http://www.openbravo.com/services/support/.
Good Luck Ande
It's very hard to get a job writing open source software; but it's relatively easy to work (and get paid for it) using open source software for further development. For in-house use the GPL doesn't impose any restrictions.
If you depend heavily in a few projects, you'd soon find yourself making changes to the codebase. If written carefully, these could be contributed 'upstream' to the project itself, making it better for your purposes, and easier to maintain since you have less inhouse patches and there's more people enhancing your enhancements.
Eventually, you could find yourself working more for the OSS project and less for the specific applications used. This can get tricky to explain to management; but with appropriate resource allocation is the most productive approach.
In my opinion, making money comes from marketing skills - not development skills. Some OSS developers use the product to market their skill set, others to market their services and some to actually market the product itself. If you wish to make a decent living off OSS, you will need to focus on marketing it or yourself successfully.
That said, I only get donations in cash/kind for my open source work. Haven't been able to actually live off it yet!
Find a sponsor. Write the software for someone who needs it, pays you for making it exactly the way he needs it, and doesn't care who else gets it. Of course that means your are less likely to write something awesome cool and more likely to make boring stuff like anybody else.
Producing Open Source Software and Innovation Happens Elsewhere are two great books about Open Source. They are both Jolt Awards winners and you can read them online.
You can write an open-source "Basic" version and a "Professional" closed-source version with additional features and support. This is especially true if you choose an appropriate license. The BSD license for example does not place any restrictions on how you combine it with closed-source code. The advantage of this model is that the open-source version essentially becomes your demo and any changes made by others can be used to improve your commercial version.
I spent a few years building websites with Zope/Plone. The websites themselves were the product, but I made quite a few changes to the libraries along the way, and sent them upstream. That worked for me.
In essence, I solved problems for my clients, and producing open source code was a side-effect of that process.
Joel has an excellent article that talks about the economics of open source.
Depending on the type of project, you might look at creating an ecosystem which includes your project along with commercial components. This could include support, customization services, training, hardware, and other software.
I'm the creator and lead developer of Wireshark. My employer (CACE Technologies) provides products for Wireshark and WinPcap including hardware (capture adapters), software (reporting and analysis tools), and support. We have a partner (Laura Chappell) who does training. So far it has worked well -- users know that there is a company behind Wireshark, and CACE provides the infrastructure required to keep the project going.
Other examples of this model are Digium/Asterisk and Sourcefire/Snort.
You can offer some kind of pay-to-use or freemium (the shareware of the noughties!) technology-driven service and open-source some or all of the code you develop for it. Then you get to draw the line between open and proprietary wherever you like.
Let me share some experiences. I have been earning a full-time salary writing Free and Open Source code since January 2009. I do this by myself. I did not get hired by a big company who likes my skills or project. I derive my income from several sources, some of which have already been pointed out by other people in previous replies.
0. Executive summary
In order to make money as an independent FOSS developer (i.e. not just hired by a big company) you need more than development skills. You need business and networking skills to gain and keep clients, and you probably need to be able to offer more than just your own coding projects in order to satisfy them.
1. Write code under sponsorship
At the moment I derive about 70% of my income from sponsorships, grants and bounties. These people are not just throwing money at me, the way you might expect from the word "sponsor". They do expect results.
There are a lot of people, companies, institutions and governments that would like to see certain FOSS projects happen but which are not available yet. Certain applications they need but which are not available for example. They pool money and I make the project happen. It's not work for hire because I get to keep all the code myself, but everything is released as FOSS and the sponsors all benefit from that. On other occasions we agree that I donate all the copyrights to a 3rd party who keeps the code available.
For example, I am currently working on Officeshots under sponsorship from the NLNet Foundation and NoiV, a Dutch government programme. All the code and copyrights are donated to the OpenDoc Society who also provide the servers to run it.
Bounties work in a similar way, but usually this is about adding features to existing projects instead of starting completely new projects and the payments will be lower.
The trick to finding sponsors and projects is networking with people, and not just networking in your geeky backyard. You need to talk to business people and government officials who control the funds. The tricky part is getting your initial contacts and sponsors. From there on they will usually introduce you to other people, who introduce you to even more people, etcetera so it becomes easier. I can't give too much advice about getting those initial contacts. By sheer dumb luck my initial contacts came to me when I was still working a normal daytime job at some company.
2. Deployments, customisation and support
This is about 25% of my income. Aside from being a developer I know a lot about IT in general, and I was educated as a business engineer. I help small and medium-sized companies design and deploy FOSS-based solutions. I also do customisations for them and provide support.
Again this means that you need to have a network of potential clients and the ability to communicate with them on a business level and help solve their problems. It also means you need to have software for them that you can deploy and support. So aside from your own projects also try and build a good knowledge of projects that businesses are interested in. I am very familiar with SugarCRM for example. Not just deploying it but also development and customisation.
There are many, many popular FOSS projects for business software like CRM, ERP, project management, business intelligence, etcetera. Knowing a few of these projects well really helps in getting clients. It's very hard to do this just on your own projects.
3. Consultancy
This is about the last 5% of my income. People hiring me just for my knowledge who want me to think for/with them or who simply want to bounce questions off me. Lots of thinking and research involved but little to no "hands-on" work.
Heres a few ideas that are combinable:
1) The most obvious - charge for support
2) Give away your software for personal use, charge for commercial use (or mandatory support contract for commercial use)
3) Accept donations
4) Write custom modules that aren't free
5) Combination of 2 and 4 - release a free version with reduced funcionality, sell the pro version
6) Use your software to get attention from companies and/or sponsors to get either sponsorship or a job improving your own stuff or building more OSS stuff.
Personally I like the idea of 6 the most, but to each their own.
Many firms will happily support your development of open-source software that fits their strategy -- I work for Google, have many friends and acquaintances who work for Canonical, some for Sun, some for Apple, some for IBM, etc, etc -- lots of people who get paid by large corps because the open-source SW they write meets the corp's strategic goals. Plus, after having done our paid work, many of us spend evenings and weekends writing some more open source software "just for fun", and/or to scratch our own itch, or to help others -- none of the companies that happily pay you for writing strategic-from-their-POV open source SW will object if you pour in more "pro bono" time into open source SW they don't care about one way or the other.
You should watch the following video.
Damian Katz, the creator of CouchDB, talks about how he achieved his dream job - being paid for programming a cool open source project.