Ask Slashdot: How To Get Paid For Open-Sourcing Your Work?
kc600 writes "Say you're a freelancer, using mainly open source solutions. You notice that customers, although they don't object to the whole open source idea, don't see the point in paying you for the time it costs you to properly open source your code. As a result, code is not released, because it would take too much time to factor out the customer-specific stuff, to debate architecture with the other developers, look at bug reports, et cetera. You feel there's something to contribute that many might benefit from. The code would also be better maintained if more people would use it, so the customer's project would also benefit. But you're not going to do it in your free time; you have enough on your mind and the bill is paid, right? What useful tricks can you think of to encourage yourself — and your customers — to properly share code, to the benefit of all, and get paid for it?"
The hard question really is "how do I convince people to give me money for writing software?". Open or closed are just details if it's being sold as part of a provided service.
If you want to get paid to write software then you're writing it for a company. If you want to write software to give away then stop expecting people to pay you for it. They want something for them. Not something for the world to use. By expecting to just give away their code you're telling them you're not focused on their product for their company. And why would they pay you to write software that a competitor can just use for free? If no competitor would use it, then why are you making it open source?
If you want to contribute to open source then do it on your own time with your own money.
It seems to me the bigger problem is that you're not a programmer, you simply find existing things that kind of do what the customer wants and piece them together.
If you can't write custom code for a client without using GPL code then you're not very good at your job.
And if you can't see the stupidity of giving something away that a client paid you thousands for then there's no help for you.
Work Safe Porn
advocate told me; YOU should not make money from open source but from other work. (support and crap like that)
I asked him why he (and Stallman) was getting paid but I shouldnt be? The reply? We are not, our companies/institutions are.
So there you have it: Wanna live of making opensource? Start working for a mega corp or a university.
http://en.wikipedia.org/wiki/Johnny_Appleseed
When I open sourced the programs that had made me some money, but I had no time nor the stamina to keep working on them, I didn't expect to get paid for that.
Instead, I thought of Johnny Appleseed.
The programs that I open sourced, to me, are old stuffs. I could have kept them under closed source, store them in CD-Rs or external hd or old computers, or ....
I could have done that, but if I did that, it wouldn't benefit me, nor anybody else.
When I open sourced those programs, I didn't even know if anybody else wanted them in the first place. I just placed them online, did some advertisement on related sites, and then, let go.
If the "appleseed" blooms, good.
If they don't, well, it'd be the same as I locked them up in CD-Rs.
The most important thing is that I've set them free. Their "lives" after being set free depends on their "fates", or in spiritual kinda speak, "karma".
Once they are open-sourced, they do not belong to me anymore. Now, they belonged to the world.
Muchas Gracias, Señor Edward Snowden !
Why should your customer pay you for something you want to do?
You simply deliver them a solution and make sure the code is GPLed. Release engineering you can do in your own time, which when done right is an investment in future business because you can re-use the code for another client, deliver better solutions because you got some (free) help improving the code from random strangers, that sort of thing.
As a foss freelancer, you're much more a consultant than a software manufacturer. Amend your mindset as appropriate.
IANAL, but not in most cases.
In most cases unless there is a copyright assignment clause in the contract the copyright stays with the developer.
This is how Ross Perot made his billions
You don't get copyright to Oracle's database software even if you cut a seven figure check. Small developers are no different.
Work bio at MMWD
If you are serious about this, then make it an integral part of your "business plan" and put in your contract that open-sourcing the project non-negotiable.
REALLY you should SELL your customer on the idea that the software THEY ARE PAYING FOR will be BETTER.
If you have to factor out custromer-specific stuff it means that your code is not well refactored and does not have clean interfaces. While you are writing code for a customer, you should take care that at the end you can release your open source parts immediately. The extra time this might cost is quickly returned, because your code will be cleaner and easier to develop. It will also result in component that are beter to use by others, because they do have a clean interface. One reason why open source components are often not reused because they have a bad interface. Refactoring is a great technique to develop clean interfaces. You will benefit it from yourself if you learn to create clean interfaces. It is an art not easily managed, I have come to realize.
I work for a 5-person tech cooperative. We were writing code, documentation, etc. that we wanted to contribute back to the community. So out of our "profit", we made sure that we set aside some funds for our members to spend some of their time abstracting code, packaging it up for release, etc.
The basic principle is the same for a freelancer - you have to raise your rates. Are you charging $100/hr? Charge $110/hr. Use the extra money to pay yourself to package up the code.
In terms of "useful tricks" - well, as a freelancer, you don't have the privilege of someone keeping you honest to your goals. You can change your personal rules whenever you want. But frankly, I would say my co-op has made a net PROFIT on open sourcing our material. When we open source it, we post about it on our blog, Twitter, etc. This increases our referrals from other developers, it means more folks are finding us on the search engines, we gain credibility with other developers when we need them to fix a bug in their module. Maybe the "trick" is to remind yourself of those advantages.
I have been paid for writing open source software but only in the following context:
Open source project X almost meets our needs, however it is missing the following 3 features. I could spend two weeks implementing those features (but we will need to contribute it back to the project) or two months implementing the library from scratch, which do you prefer?
Basically, I would say that you need to present a very concrete value proposition in front of the customer and let them pick... starting an open source project as a contractor and on the customers dime is pretty much always going to be a non-starter.
But if you were to make it into a one-off Kickstarter project, it wouldn't be pulling a Lunduke. Personally, I'm getting sick of all the Kickstarter campaigns that are "I want to make a profit, but I'm not willing to risk my own time and money -- you guys take the risk, I'll make the profit, m'kay?" and would relish more campaigns that say "I want to make an honest buck -- pay me fair and square for my time, and I'll forego future royalties," because that's really the whole point of risk-reward. People working on royalties take a high risk, gambling on the reward. Eliminating the risk without eliminating the chance of a high payout, it's, well... unfair.
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
If you're a contractor, this is something normally specified in the contract. That contract will be specific about who owns what, and when the change in ownership happens. That's usually after delivery and final payment.
I know it happens, but I have never personally seen work done where the contractor owned the end result. You can't assign them ownership of "Oracles Database", but they usually own the code you wrote that uses that db.
Either way, it's a contract issue and should always be spelled out.
but I have never personally seen work done where the contractor owned the end result.
Check out wedding photographers in some countries.
Mod this up to the skies, please! In my opinion this applies to -everything- forgotten books [I've been thinking about trying to find the rights owners for some of them], forgotten music [same problem, I'm from the 60s there's some wonderful stuff buried] etc. Unhappily, for me, this non-publishing is collateral damage that [in the spirit of Bentham: http://en.wikipedia.org/wiki/Jeremy_Bentham%5D should be increasing the sum total of human happiness and instead lies locked or buried.
The second point, for software etc., is the 'standing on the shoulders of giants' idea. That is, something fairly simple or a few bits can be used to build something spectacular or inspire it. Same point of inspiration idea for music too.
Great post with a great many 'extra' implications, thank you.
On y va, qui mal y pense!
I recently successfully persuaded the company that I freelance for to open source a core part of their product line. The part we open sourced was essentially the engine that powers several other products. I had a whole page of benefits prepared, but the main one was this:
"Your developers don't seem to realise that the core engine is supposed to be a general purpose platform, almost like an operating system - it needs to be very well documented, and it absolutely can't have any code in it that is specific to one of the applications that runs on it. If you open source it and give it its own website and code repo, your developers will finally understand what it is, and stop dumping application specific code into it when then need to implement a new application-level feature. This will save you time because you won't have to be constantly refactoring application code out of the platform."
Also, "open source is cool, and having an open source product will make it easier hiring new developers" seemed to go down well.
foo mane padme hum
A lot of the time, the reason people aren't making money off of their open-source content is because they're too ingrained in the GPL mindset as opposed to the BSD minset.
The GPL license works better for commercial dual licencing. Release something under BSD and people can use it for commercial purposes for free. Under GPL if they want to incorporate it into a commercial system they can't - that's where you offer a commercial "paid for" license.
The first time you implement something, you don't know there's a market for it. You write something that is very specific to your customer's needs.
The second time you are asked to implement it, you have a known demand, and you have a chance to resurrect the old code and make it better suited to a wider variety of uses. You can charge the second customer the amount it would take to implement from scratch, and use that time to clean up and prepare your previous work for their purpose and for general audiences.
It's done all the time. Some little customization, to an otherwise widely-useable codebase, that is tailored to the specific needs of a single client.
I can't count how many times my company has put together a custom extension to our core product for a client only to later field many requests along the lines of "you know, like you did for [client] but with this small change" and end up rolling that same modification into our core product with a wider variety of configuration options.
Sometimes you're implementing a feature as a one-off, coded to behave a certain way because the client doesn't need, or want to pay for, the flexibility of a more generalized implementation. That is code I would never release to the public, but that doesn't make it bad code.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
I work for a company that does a lot of Open Source stuff. Here is how we manage it: We have core toolkits that are open source, and custom applications that are closed source, made for specific customers. When ever a customer needs new functionality, we try to generalize it and put it into the toolkits, which we then release. We tell the customer that we have this open source toolkit which we use for the project, and which we keep improving. But we don't specify how much of the work goes into the toolkit, and how much on the custom side.
Those toolkits have been our main marketing effort, and have certainly paid off. Within our very narrow field we are world famous, and our toolkits almost dominate the market. Nobody can afford to build a competing one, when ours is free. Although anyone may use our tools, we happen to know them best and have most experience with them, so we can often do any given job faster than others. The company has survived over a decade, and has expanded internationally, and is now all of 15 people.
In Murphy We Turst
I have been in the Open Source business for almost 10 years now and I am leading a big open source software project which is completely self-sufficient.
From my experience what you need to sell is not a 'Please open source this software because other will benefit from it' but a 'Please open source this software because YOU will profit from it - in the future'. Open sourcing a software is usually a bet on future option, like a stock option you are creating which needs constant nurturing.
Tell the customer that with a regular maintenance fee he might be able not only to help you support him (in case of problems/bugs/general support), but also will be able to extend it with possible new features with no additional costs (beyond that maintenance fee).
The 'do it for the public common good' is certainly weighing in on your suggestion but certainly a future investment and return is the key point. At least this worked for me/us. Usually if additional features happen they will be so happy and donate on top, too.
Spelling errors were made for your amusement only...
There are some nice projects on KS. See git-annex assistant; a very talented guy (Debian 'oldtimer', wrote git-annex) which is delivering a real free and open source program for a fairly low "salary".
Dilbert RSS feed
I think he's taking a big paycut to work on what he wants, when he wants, free from stress and annoying people. It's a reasonable trade-off.
And I don't think he really lowers the bar for everyone else.
In any case, his living arrangements seem rather inexpensive: http://joeyh.name/blog/entry/notes_for_a_caretaker/
Dilbert RSS feed
In the case of a contractor or a comissioned work (in the US), a work qualifies as a work for hire only if all the following 3 conditions are met:
1. The work must be specially ordered or commissioned
2. The work must fall under one of 9 categories defined by 17 U.S.C. 101: contribution to a collective work, translation, supplementary work, compilation, instructional text, test, answer material for a test, atlas, or part of a motion picture or audiovisual work.
3. There must be a written agreement between the parties that the work is a work made for hire.
If these conditions are not met, the work is not a work made for hire and the ownership of the copyright remains with the creator of the work.
In any case, consulting a lawyer to understand your particular case (and review your contracts) is always a good idea. If you're in the position of propsoing that contract, you should have a lawyer draft the standard framework you then customize for the client.
It is important for the contractor to realize that the default is that the contractor owns the code. This means that if you don't own the code, you should be compensated for not owning it.
They don't own the code for Windows, Microsoft Office, the Oracle Database, or most of the rest of what they use. In my experience not giving up copyright typically just means crossing out that section of the contract and asking that it be negotiated separately.
Work bio at MMWD