Earning Money with Open Source Software?
An anonymous reader writes
"I've been working on a financial application which I've decided to release to the public. I want to make some money from the application, though I certainly don't expect to become a millionaire. The problem is that I'd like nothing better than to open-source it. There are many aspects of the application that I don't have time to refine, and other developers could definitely improve upon my work. However, I don't know how I earn money from something once I've made it open source. How have you dealt with trying to turn a reasonable profit on your work while remaining open-sourced?"
For whatever reason, people often assume a false dichotomy between open sourcing code and making money. This isn't the case. A simple example of this is the ability to donate to any project on sourceforge. So a simple effortless option is to sign on to SourceForge, register your project and make yourself the sole dev. Then you just need to sit back and wait for all those donations to roll in!
Likely source of income? Not really.
So let me tell you something that happened to me. I had, in one of my classes, built an interface to GOCR (not Jack Black's band but the Gnu Optical Character Recognition project). This was a while ago. It was in C and it was shitty. I mean really shitty. I didn't even open source it. The teacher liked it though, maybe she still uses it, I don't know. Whoop de doo, right? I made a GUI to a command line tool.
Fast forward 2 years. I'm out of college and it's a bad market for developers. I show up for an interview with a company I had no idea was even into software. I show up in khakis and a button down shirt. Everyone else is in double breasted suits. I figure I'm screwed. But when I get into the interview, we started talking about open source and--wouldn't you know it--GOCR! The woman who interviewed me had used it on a project and started complaining about the command line. So I told her what I had done and talked about the algorithms and how it recognizes characters. I told her why my interface was so crappy. I got the job and I've been working there three years--they even allow me to do crazy research stuff at work!
Did I directly make money working on open source? No. But I think I got the job just on that conversation. I kinda wished I had checked in that interface as I'm sure it's lost somewhere on the university network now. What if she had actually used it?
I suggest you open source it, work with others to make it better, give it time to propagate. Then submit your resume to any place you want and list it on there. If you've made the Firefox of financial apps or prove you really understand how to design financial software, there's a lot of places you could go.
My work here is dung.
From my experience, the best means of leveraging Open Source Software would be using the Saas model. Usinng the Saas model there often are additional opportunities for income such as advertising or other tie ins.
The alternative approach seems to be in providing extended support serivces for the software as does Redhat.
If you don't have time, or you're just too lazy, to continue to add updates, and you want to make a quick buck off of it, don't OS it. It's that simple. OSS companies tend to sell support, and possibly custom-tailored upgrades.
If you think it'll be mildly popular, and you really want to OS it, throw up a paypal donation link. You may not get as much, but you'll be staying true to your scruples.
Your choice.
and then provide the basic-feature part of the service with ad-supported revenue while charging for custom in-house solutions. After making in-house solutions and getting paid for them, release the software open source. They paid you to write the solutions -- not to own them. This way the project goals will be set by customers (and necessity is the mother of invention) and at the same time the software will remain available to those who want to tweak it.
Any guest worker system is indistinguishable from indentured servitude.
I can't tell from TFA whether the "financial application" is a server or desktop application. Assuming it is a desktop application then I would point out that open source code does not have to mean open binaries.
Try to separate your markets. If you give it free to people who would not buy it anyway, then your increase your visibility and your network effect. You might also get some patches back.
So put the source code online, maybe even try to get it in the Linux distributions for more visibility.
However, charge for the Windows binaries/installer. Most Windows users will pay $20 rather than have to figure out how to compile it. If they do compile it anyway then their time is worth less than $20 so they could not have afforded it anyway.
My little Linux and tech blog
We've done quite well with open sourcing our antispam product http://firetrust.com/en/products/oss/mailwasher-server by giving away the main product and selling a value added service on top of it - this being an enhanced spam filter service we run.
I think the giving away something for free and selling a few enhancements is probably the easiest way to make money, much more so than consulting and support which directly takes up your time.
Nick
Here's how I did it.
Once upon a time I was a completely unknown, but reasonably competent, software developer. I worked for a big mainframe maker. The software I worked on was proprietery and completely invisible.
Many suspected mainframes were all but history. I decided to learn to write for a different platform: PC, Unix. So, I bought a PC, taught myself C/C++. Now what? There was a open source project whose software I used. I felt it needed a big feature. The author wasn't interested in doing it, but was very helpful in getting me started on interfacing with it. I ended up writing a big plugin for it.
That piece of work gave me some personal visibility and credibility in the open source community, and a "portfolio". When the layoffs happened, because of my work on the project, I knew some folks at a shrinkwrap software company. My "portfolio", a demonstrated ability, got me a job with the shrinkwrap company. --- My old employer, the mainframe maker, spiraled down the bowl into oblivion.
The point of the story is that the software I wrote in the FOSS model didn't make any money for me, but it gave me, an introvert with little public persona, nor desire to have one, visibility and credibility to those who would hire me.
That may work for you too.
It's virtually certain you will not make a living from free software.
Our business model is to have a core GPL'd product that is solid, but geared for sysadmins and technical people. We then have a more user-friendly and spiffy product layered around it that is traditional proprietary software (although we do ship with source which is somewhat unusual.
Hard-core techies or FOSS-only people are happy with the GPL'd product, and others buy the commercial product. The GPL'd product is also a good hook and marketing vehicle, as well as a proving-ground for new ideas, scalability enhancements, etc.
I've been working in a software company I founded with my friends at university some eight years ago. We have created a software platform for certain industrial computation tasks and believe it could very well be used in many other applications, especially for research purposes. We have frequently spoken about open-sourcing the platform, but always faced the same question: where's the money? We get a decent income for the applications we build on the platform, but haven't been able to figure out any financial benefits on open-sourcing neither the platform nor the applications. Following the discussion here it seems that no one really has found a working solution. Selling support or custom upgrades is not what we really want to do as engineers, is it?
Look, I'm trying to get my software business rolling and I'm finding four things:
a) Selling commercial packages for Windows is extremely difficult online. You really need to have a highly trained sales force and a serious marketing budget. Corporations can pay you the big bucks, but, you need to lay out some big bucks yourself. Unless you plan on trying to be a millionaire, its probably not realistic to try and cater to vertical corporate markets via shareware or online software sales. It costs a ton of money to get in there... unless you hit the jackpot with that simple utility or game that everyone just have to have.... but there's a lot out there.
b) Advertising revenue from being the main web site for free software often exceeds the revenue you can get from shareware anyway. This surprises me, but, I've spent far more time bashing my head against Windows shareware world but the Linux world, for a lot less investment, is making more money for me. It may be that my writing is better than my software, for sure, but, those little google adsense keywords do pretty good.
c) There's really more interest in Linux, and, bigger players can give you some serious help. For example, IBM has an excellent solutions directory and keeps a database to help hook your system up with potential clients. That can translate into development work for you, to add new features, and really as more of an architect or senior level person (having designed the original project), then, at a lower rate a normal code-drone would get.
d) Developing for Linux, or just having a site out there, can impress a lot of people in IT, and in some ways, better than Windows does. Everyone does Windows, and so being involved in Linux sets you apart. I have a client that's a closet Linux fanatic, and once I admitted that I too, love my dual opteron (until the SATA chip died), running Linux, our relationship got a lot better and I find myself being involved in ever cooler projects.
So, yeah, there's this belief out there that Linux equals starvation whereas Windows is money, but, its a complicated world out there.
Options abound. Here's one crazy thing I've heard of. As the copyright holder, there's really nothing that precludes you from selling both versions of the same product. You could sell your product for Windows, for sure, and you could open source it for Linux, if you like.
Another thing you could do would be to offer your software as FOSS, but host a web site as a service that does it. Yes, you would in effect allow other people to create competition for you, but, usually, the biggest problem you have isn't the software, but getting people to buy into the idea that you have being your software. If you create a program to make a service that is FOSS, and suddenly a 1000 web sites pop up making it, you've in effect gotten free advertising for your concept, and the advantages of that cannot be understated.
All I can say is good luck. In 2008 I'm going all out Linux - as soon as I get my Opteron mended -, and for the reasons I've listed, I think I'm more likely to make myself a millionaire giving software away than I would be selling it under Windows.
This is my sig.
A general manual that you sell isn't the best idea, because it relies on the copyright enforcers to create revenue after the work is done.
A better idea would be to approach large groups and get paid in advance to help them write tightly focused internal use manuals.
The #1 rule to making money, which everyone in the IT sector seems to forget, is this:
Demand payment upfront.
-1 Uncomfortable Truth
It depends a lot on the type of product you have developed. I also created a financial software application (Data Loader) to support a data service offered by Standard & Poor's. I originally tried open sourcing the thing and realized it was such a niche product, that no one would really have any interest in helping out and that it would be easier and faster for me to add features and guide the product without external intervention. Additionally, the user-base would never exceed 10-20 people i dont think.
If your product will attract a lot of attention and be of use to lots of people, then it may be more advantageous to open source. My main problem with open sourcing an application is as follows. Lets say your application could save a company 10 000 dollars a year (which is roughly what mine does). If you open source the project, there may be enough incentive for a company to simply take the code and adapt/customize it themselves without paying you a dime. If you left it closed source, they would be more inclined to pay you a licensing fee than to go without the product since its saving them a good deal.
So id say you need to compare how inclined potential clients would be to simply take the code and run versus the possibility of garnering attention from having an open source product and selling services/support for the product (which would only happen if it reaches a large user-base).
Many, many years ago Michael Tiemann wrote a brilliant article on this very topic.
He and a couple of friends started Cygnus software, investing $6,000 to get
started. They added features (well, in the end pretty much built) the
GNU development tool chain. Their customers were embedded developers.
Here's the article:
http://www.oreilly.com/catalog/opensources/book/tiemans.html
I'm really sad to have come in late on this discussion because this
article is a must read for anyone wanting to make money writing free software.
Tiemann, et all became very rich doing it this way (Cygnus was sold
to RedHat for $600 million -- although a venture capital company
walked away with some of that money).
My quick take on it: Get money up front. Get paid for development,
not software. Realize that marketing is probably at least as
important was programming.
I really believe there is still a huge niche for custom software
development built on free software. Over 90% of software development
is in house development (OK, it's a number I pulled out of my
ass, but I think it's accurate). Your job as a free software
developer that wants to get paid is to convince companies that
you can deliver software to them cheaper than their in house
teams.
So what you need to do is to get a track record in the niche
that you want to work in. Then you need to hit the streets
and knock on doors. If you build it, they may or may not
come. You need to market your work. You need to show these
companies the potential for using your services rather than
building it themselves, or buying it off the shelf.
As Tiemann showed, if you do it right you will have more than
enough work to keep you fed.
I provide hosting, support and implementation services for SQL-Ledger (sql-ledger.com) which is also an open source financial application. Although I did not develop sql-ledger, I am developing a number of addons and patches which I am releasing to the community through my website (http://www.ledger123.com/). I selected the best possible platform (joyent accelerator http://www.joyent.com/accelerator/) for my hosting so that my customers could just forget about issues with security, reliability etc. Added round the clock support to customers and free support to community and result is not bad. Making enough to feed a full time staff of two and one part time sysadmin. But I had the luxury of taking a mature open source application and build business around it.
While the Exhibit B clause does add some additional restrictions that may not be quite as "open source" as GPL'd code, it does provide a good balance between supporting the open source community and making a profit. Our Exhibit B clause is below, if this helps.
CATS Public License 1.1 Exhibit B:
Additional Terms applicable to the CATS Public License:
You MAY NOT use the Licensed Software to operate in or as a time-sharing, outsourcing, service bureau, application service provider or managed service provider environment.
The following copyright notice must be retained and clearly legible at the bottom of every rendered HTML document: Copyright 2005 - 2008 Cognizo Technologies, Inc. All rights reserved.
The "Powered by CATS" text or logo must be retained and clearly legible on every rendered HTML document. The logo, or the text "CATS", must be a hyperlink to the CATS Project website, currently http://www.catsone.com/.