Slashdot Mirror


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?"

39 of 167 comments (clear)

  1. Wrong question - "how to get paid?" is enough by dbIII · · Score: 5, Insightful

    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.

    1. Re:Wrong question - "how to get paid?" is enough by beelsebob · · Score: 3, Insightful

      This is really rather simple... The reason you are getting paid is because you are doing what they want you to do, not what you want to do. If they don't want to open source it... Tough titties.

      Sure, have a quick go at convincing them that the project or a subset of it would get them good publicity if they allowed it to be FOSSed, but really... It's their code, they paid for it, so it's their choice.

    2. Re:Wrong question - "how to get paid?" is enough by icebraining · · Score: 3, Interesting

      It's your choice too; nothing forces you to work with clients that refuse it.

      Almost all our software is open source, and clients don't really get a say in that besides simply not hiring us. Yet we don't have a lack of clients, because being open source enables us to take advantage of GPLed code from other companies - much like they do with our code - and deliver much cheaper and well-tested solutions that custom proprietary code.

    3. Re:Wrong question - "how to get paid?" is enough by chrismcb · · Score: 4, Insightful

      It's your choice too; nothing forces you to work with clients that refuse it.

      I didn't get the impression that their clients are refusing to allow the OP to open source the code. They are just refusing to foot the bill for it. I'm also making the assumption that the code the OP is referring to is NOT actually work for hire code, and he actually has the permission to open source it. He is just doesn't want to open source it for free.

    4. Re:Wrong question - "how to get paid?" is enough by jellomizer · · Score: 2

      Sure you can refuse to work with clients. But is Open Source really that important to you?

      I prefer to get my paycheck, I get my pay check from working with my clients (and the more clients I can handle more I can often make), I am not opposed to open source, however there are other things in my life I consider more important. Like keeping up with my bills. If they want to release it Open Source I am good with that, I can do the extra work to make sure that everything is GNU pure, I may even express to them that keeping it open source can help offer maintenance beyond the risk of a small set closed developers. However if they want to keep I will be ok with that too, Losing a client isn't worth making a scene about it.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    5. Re:Wrong question - "how to get paid?" is enough by icebraining · · Score: 2

      Why is a proprietary competitor bound to NOT use any open source software?

      All the software we use* and write is GNU AGPL licensed.

      *Except for the programming language and its standard library.

      Other companies hiring yours generally aren't going to care about that philosophy. They want to know that the program they paid for will work, be maintainable, and most importantly be done cheaper than the competitor.

      I think people here have a reading problem.

      Sigh. Of course they don't, but never I claimed they did. Quoting my own post:

      we're able to benefit from a big open source community an deliver better tested software in less time and for less money.

    6. Re:Wrong question - "how to get paid?" is enough by icebraining · · Score: 2

      (The sibling post was mistaken)

      Your competitors are free to use whatever open source they can to deliver their own solution.

      I wrote proprietary competitors, not all competitors. Sure, they're free to use and write open source like us, but then they wouldn't be proprietary!

      The fact is, most companies in our field are afraid of open sourcing their applications, and are therefore unable to take advantage of the big copyleft community in which we participate.

  2. You're in the wrong business by KalvinB · · Score: 2, Insightful

    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.

    1. Re:You're in the wrong business by slashping · · Score: 5, Insightful

      So instead of a programmer grabbing a Linux kernel, and spending a few days to add a driver for customer specific hardware, you would advocate that he wrote his own operating system instead ?

    2. Re:You're in the wrong business by jones_supa · · Score: 2

      I suppose the submitter is thinking about benefiting the ecosystem as whole when you don't have to reinvent the wheel every time. That's what open source is about...

    3. Re:You're in the wrong business by TheRaven64 · · Score: 5, Insightful

      Another poster already called you an idiot, so I can skip that part and get onto exactly why you are wrong. People pay me to write software because they need that software written. That is the best motivation for writing software and the reason why about 90% gets written. The remaining 10% of commercial software is written because someone thinks it's a good idea and that they'll be able to sell finished versions.

      Pretty much all of the software that I've been paid to write has been released under a permissive license (MIT, FreeBSD, or UIUC license). This is because there is a non-zero cost associated with maintaining a proprietary fork, which is basically what happens when you make any nontrivial changes to open source code and don't push them upstream. New features and bug fixes upstream may change some interfaces that you depend on and this means that you end up either having a version with known bugs (including security holes), or you spend money backporting the changes to your branch. If you upstream the code then someone else pays for this and it is cheaper for you. In FreeBSD land, we're currently working with Netflix and Juniper to upstream a load of their changes for exactly this reason: they want to spend developer time (and therefore money) on new features, not on keeping old ones working.

      More importantly, if you don't upstream your code and it's useful to others then eventually someone else will implement the same feature, but often in a different way. You then either throw away the code that you've paid to have written and use theirs, or maintain a fork that is now radically different to upstream and therefore much more expensive.

      As the developer, you also benefit from being able to use the code elsewhere. Everyone wins: your current customer gets a lower long-term maintenance cost, your next customer gets a smaller up-front cost, and you don't get bored implementing the same thing lots of times.

      --
      I am TheRaven on Soylent News
    4. Re:You're in the wrong business by TheRaven64 · · Score: 4, Insightful

      There is nothing in the GPL that requires you to contribute back to the community. The only requirement is that you give the same rights to anyone that you give derived works to that you received. For example, you can take GPL'd code, extend it, and then sell the result to a company, with a contract prohibiting you from selling or giving it to anyone else. They are then free to redistribute it under the terms of the GPL, but they are not required to. The GPL does not require you or them to return any code upstream, only to pass rights downstream.

      --
      I am TheRaven on Soylent News
    5. Re:You're in the wrong business by slashping · · Score: 2

      No, GPL clause 6 explicitly states that you may not impose any further restrictions on the recipients' exercise of the rights granted in the GPL. So you cannot sign a contract that prohibits you from distributing the program in accordance with the GPL. While it is true that the GPL does not require you to return any code upstream, it does not allow any way to prevent this either.

    6. Re:You're in the wrong business by TheRaven64 · · Score: 3, Interesting

      You misread. You are not imposing extra conditions on people who receive the code, you are accepting extra conditions imposed by the person to whom you give the code. This is permitted by the GPL, because copyright law does not make it possible to impose this restriction.

      --
      I am TheRaven on Soylent News
    7. Re:You're in the wrong business by Kozz · · Score: 2

      the phallacy is "give away"!="open" in the way we usually mean it here.

      Pardon me, but I think your spelling is a bit cocked-up.

      --
      I only post comments when someone on the internet is wrong.
  3. A friend of mine who is an avid open source... by Anonymous Coward · · Score: 2, Interesting

    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.

    1. Re:A friend of mine who is an avid open source... by VortexCortex · · Score: 2

      Here's what I do:


      Customer: We have the following requirements for this project.

      Me: Oh, looks like I can cut your cost a bit if I use some open source software to save me some time. You would get the work done, but the source code would then become open source for everyone to use.

      Customer: How much of a discount are we talking?

      Me: ./say ($ESTIMATE - $COST_TO_REINVENT_THAT_WHEEL)

      Customer: How can you bid so low?

      Me: Oh, I'm charging my normal rate, not having to write the functionality of the avaliable existing FLOSS software actually saves me that much time.

      Customer: What about the licensing I heard about?

      Me: Well, as long as you're just using the software not redistributing it to end users or other companies you don't have to do anything, I'll just post the code on my public repository, and submit it to the project. I do this frequently, but check with your legal dept. and get back to me.

      Customer (eventually): We really just can't justify spending more money with the other contractors when your price is so low and the turn around so quick.

      Me: Thanks for funding the development of Open Source Software!

  4. The spirit of Johnny Appleseed by Taco+Cowboy · · Score: 5, Interesting

    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 !
  5. Are you or are you not a freelancer? by Anonymous Coward · · Score: 2, Insightful

    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.

  6. Re:It's not "your" work by micheas · · Score: 2

    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.

  7. Put it in the contract up front by FranTaylor · · Score: 3, Informative

    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.

  8. Refactor your code correctly by Frans+Faase · · Score: 2

    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.

  9. We had this problem. We solved it. by JonToycrafter · · Score: 4, Informative

    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.

  10. The only way it has ever worked for me by Yaur · · Score: 4, Informative

    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.

  11. Re:Do and don't by Half-pint+HAL · · Score: 4, Interesting

    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'
  12. Re:It's not "your" work by Anonymous Coward · · Score: 2, Insightful

    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.

  13. Re:It's not "your" work by TheLink · · Score: 2

    but I have never personally seen work done where the contractor owned the end result.

    Check out wedding photographers in some countries.

    --
  14. Re:The spirit of Johnny Appleseed for Everything! by hughbar · · Score: 5, Insightful

    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!
  15. Tell the company what's in it for them by bigHairyDog · · Score: 3, Insightful

    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

  16. Re:A: You don't by Chrisq · · Score: 2

    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.

  17. Open source it the second time around by dhasenan · · Score: 3, Insightful

    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.

  18. Re:The real question by BronsCon · · Score: 2

    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.
  19. One way by heikkile · · Score: 4, Interesting

    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

  20. Don't sell project itself but its future by cronostitan · · Score: 3, Insightful

    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...
    1. Re:Don't sell project itself but its future by Guy+Smiley · · Score: 2

      I'm also a 10+ year open source company veteran, and we have survived 1/2 on customers paying us for feature development, and 1/2 on ongoing maintenance and support in production environments.

      The one thing that I think is the linchpin in _customer_ value is that there is no vendor lockin on their part. If our company were to go bankrupt or become money grubbing idiots, then they are free to go their merry way an continue I use our software without any license or support from us. They can hire someone else to provide their support, or do it on their own via mailing lists. There are many smaller sites that so not pay for support, but the larger ones pay us because their system uptime and stability is more important to them than the annual support fee, and they know that money paid to us makes their product better.

  21. Re:Do and don't by icebraining · · Score: 2

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

  22. Re:Do and don't by icebraining · · Score: 2

    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/

  23. Re:It's All About Incentives by lostfayth · · Score: 2

    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.

  24. Re:It's not "your" work by micheas · · Score: 2

    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.