tags:

views:

2180

answers:

22

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?


Related questions:

+2  A: 

You could get a normal for-profit job and do open source development off hours.

Just make sure you align your priorities correctly.

Geoffrey Chetwood
A: 

Get a decent job that pays the bills and write the open-source stuff on the side :)

Kevin Fairchild
+17  A: 

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.

Ben Hoffstein
+5  A: 

I know three kinds of people living out of open source:

  • Those who got hired by a big company depending on the software
  • Those who got hired by a big company not depending on the software but liking the skillset of the person and letting them continue working on it part time (probably because they asked for it)
  • Those charging for customization and support (these includes those who founded companies selling support and customization)

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)

Vinko Vrsalovic
+11  A: 
  1. 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.

  2. 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.

  3. Mostly though, I think people do it in their spare time for fun.

JeeBee
+8  A: 

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.

  1. Do the project because you believe in it.
  2. Open source it because you believe in FLOSS.
  3. Make a living from it because points 1) and 2) came to pass

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.

Unsliced
Interestingly enough, I've become more skeptical of hiring persons with strong OSS backgrounds if any of the projects are similar to our company's products. The reason being that we have had past employees who refused to work on projects that would endanger their OSS work in their free time. This was very awkward to say the least especially since I am quite happy working on OSS projects in my spare time.
D.Shawley
+3  A: 

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.

  1. I treat my open source development projects as resume/portfolio building blocks, many customers of mine have came to be because they were impressed with the form/function of the various free modules that I put out there.
  2. I always provide a donation link on each product information page, this doesn't work very often, but at times it will get money in the door as well
  3. Offer the ability for individuals to sponsor the development of an open source product, or an ehancement to an existing product. I have worked with many of my clients to have them pay reduced rates to allow free distribution of the resulting works in exchange for their name being listed as a "Sponsor".

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.

Mitchel Sellers
+10  A: 

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.

Simon Munro
I really like your point. It is much more realistic.
Sharique
Uh, open-source (free software) is about how the software is *distributed*, it is entirely orthogonal to programmers "working for free". Much (a LOT) of free software is produced by programmers hired to write it, at IBM, Novell, GNOME, Trolltech, Red Hat, Canonical, etc. Shuttleworth's company was Verisign, not a company that sold software.
ShreevatsaR
In order to pay developers you have to have a source of income. If you can't make it by selling the software, then you have to have another revenue stream. Providing support is very resource-intensive and is simply not feasible for smaller OSS projects.
HVS
The people in ubuntu the company are still having to make money off of open source, even if Shuttleworth doesn't.
Tchalvak
+4  A: 

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

borjab
The drupal community is full of developers that sell services around customization, setup, and support. It's been a very effective model in that community.
acrosman
+2  A: 

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.

Javier
I agree. I'm still in search for a job that let me involved in OSS work beside of my paid work.
Sharique
+2  A: 

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!

sybreon
+2  A: 

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.

ammoQ
+5  A: 

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.

kgiannakakis
Thanks for books.
Sharique
from IHE: When businesspeople first encounter the idea of public open-source software, they are usually attracted by the fact that it is cost-free and that they get access to the underlying source code--open-source software is like coming across a blueberry bush bursting with fat ripe blueberries. But then it hits them that open-source software comes on an as-is basis with no warranty, no indemnification, and no support. ... <snip>from my experience:businesspeople shirk OSS with the assumption that if it doesn't cost anything it can't be any good."the best product is the most expensive"
kent
+3  A: 

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.

SpliFF
Uh, if you place your code under a BSD license, someone else might just as well write their own improvements on top of it and sell it (closed-source). It is not at all true that "any changes made by others can be used to improve your commercial version", only changes that they themselves choose to release under a BSD license.
ShreevatsaR
That's the altruism part. You aren't being altruistic if you always expect something in return. Realistically though you would probably see many third-party patch submissions if you set up a simple means to manage contributions (ie, source-control with web interface and a forum). From a commercial point of view you are going to have more trust and higher visibility than most forked projects due to you higher profile from the free version. If somebody is going to upgrade to a premium product there's a very good chance it will be yours.
SpliFF
+1  A: 

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.

shapr
+4  A: 

Joel has an excellent article that talks about the economics of open source.

Strategy Letter V

Dana Holt
+1 I wish I could make this compulsory reading for everyone who posts about open source.
MarkJ
+6  A: 

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.

Gerald Combs
I'm planning on something like that. I'm creating a distributed application server as open source, and I'm planning on creating commercial monitoring, debugging and profiling tools of high-quality for the platform. If the platform becomes popular, hopefully there will be customers for the tools also.
Esko Luontola
+1  A: 

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.

chaos
+33  A: 

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.

Sander Marechal
+2  A: 

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.

Darko Z
+1  A: 

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.

Alex Martelli
+1  A: 

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.

maayank