Contract Developer Charging for Source Code?


April 17th, 2015

Has anyone ever had the experience of a contracted developer charging their client to release source code? I have been told that this is industry practice with a fee of up to 20%.

I would love to hear from anyone who has any experience or thoughts about this.

Marcus Matos Software Development & Information Technology Professional

April 17th, 2015

I am surprised at some of the replies here, especially since they seem to be opinion based and not based upon copyright law. As someone who is both a contract developer and uses contract developers, I've been on both sides and would like to clarify some things:
  • Everything I'm about to say is based upon US copyright law.
  • I am not a lawyer and you should consult one.
  • If you hired a contract developer to write source code and you don't have an agreement stipulating that you own the source code, it's pretty much the same thing as hiring a writer, graphic designer, etc. The person who creates the work owns the work, period.
  • A work for hire agreement generally does not apply to programming services because they do not fit in to the categories specifically called out in copyright law.
  • So in short, unless the developer signed an agreement before work startedstating that the copyright to thespecific work described would belong to you/your company, the contractor owns the source code and can do with it as he sees fit.
Now here is how I handle it on my side as a contractor:
  • Here in Texas there are sales tax implications depending on whether or not I assign copyright to my client. If I retain the copyright, sales tax does not apply, but if I assign all rights, it becomes "tangible property" and therefore subject to sales tax (on 80% of the price). Not related but FYI.
  • If the client wants to own the source code, I add an assignment of copyrightto the contract/statement of work that specifically calls out the work and becomes effective only after payment in full.
  • I usuallydo not charge anything extra for assigning the copyright to the client (since I build highly specific solutions that I can't reuse) if this is worked out at the beginning.
  • However, if the client asks for full rights on something after the fact, I have to go through a process of ensuring that I'm not about to sign away the rights to something that I've used on other projects, and this can be a pain, especially if I have to rework something or rip out some shared code/libraries. In this case I would absolutely charge extra for the work and time.
From a client perspective, I do the following:
  • I have a master contract with my developers that incorporates a Copyright and Intellectual Property assignment for all work performed specifically at the request of my company, immediately in effect once I accept the work and pay them.
  • I have a provision that allows for excluding certain works or statement of works.
  • Unlike some companies I've seen, I don't try to force them in to some non-compete or overly broad "I own everything you do" - I just ensure that the work I've specifically asked them to do does get transferred to me, especially since I may need to transfer it to my client in the future.
I hope this gives you some perspective on this, and I also hope that the other folks here who have assumed that "work for hire" covers them takes another good hard look at this, because courts have found that this term does notautomatically apply to software development because it is not one of the nine categories covered under the work for hire doctrine. Be very, very careful that you are not interpreting things relating to employeesas things that relate to contractors.

Some sources:
The last one is quite interesting - a developer provided the specific code that was ordered but not the shared/proprietary parts - which were required for the source to work. How would you want to handle that? By making sure the agreement is clear upfront this can be avoided.

To Long Didn't Read? Don't rely on "Work for Hire". Contractors own their work/source code unless a specific contract is in place stating otherwise. Get a copyright/intellectual property assignment in place. There's a lot of "developers don't care about the source" but that doesn't matter - what matters is making sure that you don't get sued 5 years down the line by some developer you forgot about because you're profiting from work that legally belongs to them.

Karl Schulmeisters Founder ExStreamVR

April 17th, 2015

Well the 20% charge is not in the contract but THIS is

>>All Source Code shall remain the property of the Developer until termination of the agreement and subject to payment of all monies due to the Developer for the purchase of said Source Code.<<

The master class you just signed up to take is "How to read hostile contracts 510"  and its going to cost you 20% of the cost of the contract.

As a CTO I would never ever sign such a contract.   And in fact I would throw out Almost ALL of section 8.

All intellectual property rights shall remain the property of the Developer and/or its licensors until the Client has paid all monies due to the Developer At which time intellectual property rights shall transfer to the client as per normal work for hire agreements.

On termination of this agreement and subject to payment of all monies due to the Developer under it, the Developer shall assign to the Client all intellectual property rights as regards Creative concepts only. and the client shall each have derivative IP rights on the product developed except for the list of concepts enumerated in Appendix A.  Those concepts will remain the IP of the Client

All Source Code shall remain the property of the Developer until termination of the agreement and subject to payment of all monies due to the Developer for the purchase of said Source Code.

The Developer shall deliver to the Client full working source code as well as complete documentation of the build environment and tools to reproduce the product as well as transfer any relevant licenses for included code and libraries necessary to build the solution unless explicitly exempted in writing by the client

The Developer will use all reasonable endeavours to obtain all copyright and a waiver of moral rights in respect of work sub-contracted to or acquired from third parties but it cannot undertake that in all cases it will be able to do so. In the event that the Developer is unable to obtain copyright or a waiver of moral rights in respect of such work the Developer shall inform the Client before any appropriate agreement is entered into. and will transfer such intellectual property rights to the Client upon final payment

The Client shall provide the Developer with copies of all trademarks and branding which are to be included in the Product and the Client hereby grants the Developer a royalty free licence to use, copy and reproduce such trademarks and branding for the purpose of developing the Product. Such a license to use will expire with the termination of the contract.

The Client agrees that on termination of this agreement the Developer shall be entitled to use the Product solely for its own internal and external promotional purposes.   cease to have any rights to use or refer to the product or the Client except by explicit permission of The Client  This includes but is not limited to any screen shots trademarks, branding or other indentifying marks

If you had an atty read over the contract before you signed it - I'd go back to that attorney and ask why they didn't advise you of the consequences of Section 8.    Because you basically contracted with these guys to rent the runtime they produced and you gave them the right to use your stuff as they saw fit.  A competent atty should have warned you about this.

And upon seeing section 8 - you should have not walked but RUN away from these guys at full tilt, because they are not working to industry contracting standards.

Now when you go back to them for Source Code... go read the section I wrote about the build environment, tools and contained IP.    but I'm not a lawyer - go get a lawyer to right that section for you.   because you need to get the ability to reproduce your product without these guys and you also need to have derivative rights from that Source Code.

And if they won't give this to you - then you have learned a very expensive lesson.   And you will need to stand it up and see if you can get it to run and generate enough cash to go to a different development house.

I would never ever use these guys again

Jake Carlson Software Development Manager at Oracle

April 17th, 2015

I agree with @Marco's very thorough answer, but I'll add a few things. I have developed custom software for dozens of clients, so this issue hits home with me. There are 2 sides to this: access to / license to the code, and ownership of the code. Well-written contracts address both, and it looks as though yours may not be adequate (or at least not adequately in your favor).

Let's get this out of the way: never work with them again and give them a bad review to anyone that asks. Regardless of the legalities, they were not up front with you about this and their reputation should be punished for it. But only if they truly did not outline the 20% rule to you in this contract or by some other means. If they were up front about this to you, you have nobody to blame but yourself.

I don't really see anything in their contract that prohibits them from doing this, so I don't think you have a leg to stand on legally. It's hard to tell without details about what kind of software this is, etc -- can you provide some details there? I don't write software in any compiled languages, so I don't personally run into the distinction between source code and compiled code / binaries. The only reason I can see a distinction being made is with regards to right to either a) change the code, or b) re-sell the code.

My software contracts grant a perpetual, re-assignable, royalty-free license to use the software and change it however the client sees fit. They are not allowed to re-sell it under any circumstances, but if they sell the business the software may be re-assigned to the new owner. I do not give up ownership of my code. I have lost contracts because of this, but that's ok with me.

I am surprised by developers here that are claiming that they don't re-use their code. I hope they are exaggerating, because most good developers write code in such as a way as to be re-usable, and they frequently either use that code verbatim for other projects or some derivative of it. If I create a good way to solve a problem, I absolutely will use it again to solve the same or similar problem. And I would not sign a contract that prohibits me from doing so.

My suspicion is that many developers here (and elsewhere) claim they assign all IP ownership to their clients and then hand wave about never using that code again. Frankly, a lawsuit will probably never happen if the derivative work of a developer doesn't compete with the original client.

Ben Gamble Lead Developer at ViewRanger (Augmentra Ltd)

April 17th, 2015

Unless the work includes a library or code written by them privately for which they have pre-agreed not to give you, They really have no leg to stand on.
Unless you have an explicit contract stating that you are waiving your automatic copyright (which seems beyond silly, and is totally abnormal practice) it is very hard for this not to be a shake down. 

Jason McClellan Sr. Systems Engineer at Discovery Communications

April 17th, 2015

Absolutely not.

If you hired them to write custom source code, it's a work-for-hire and you are the owner of that source, no additional fee necessary.

If you hired them to implement something using an existing, proprietary product of their own that they are instead only licensing to you, then I suppose it would be possible for them to charge you for the source, but I can't imagine many scenarios where this would be the case. This type of thing would be spelled out in the initial contract.

So, what does the initial contract say?

Here is an article about works for hire and copyright:

Tom Maiaroto Full Stack Consultant

April 17th, 2015

99% of contract developers out there do not care about the source code for a project. It doesn't do them any good to keep. It just wastes their disk space. They aren't doing your business. This situation makes no sense.

If you could provide some additional details about your contract and the job done, it may help...But most likely this seems excessive.

Tim Scott

April 17th, 2015

If they cannot show you where you agreed to 20%, it's a shakedown by a sleazy outfit. Problem is, as the saying goes, possession is nine-tenths of the law.

You can probably get your way though. Demand your code without paying another red penny, and if they won't comply you'll never rest until you have ruined their reputation. It's a bluff of course, but if you can make them think you're so angry you've lost all your reason, they will probably bend.

Karl Schulmeisters Founder ExStreamVR

April 17th, 2015

What Marcus Matos said.   That said, this is slime on the part of this developer.   You have a right to factually describe your experience with them.  Once you get the code, I would walk away, never use them and let everyone know who it was.

Edward Robertshaw Started TinyCall

April 17th, 2015

Check your contract and statement of work. It's whatever you agreed with them. By default they own the work they created, generally speaking.  

At llc we only release source code if all invoices are paid. I wouldn't call that standard but its pretty reasonable to assign over IPR etc upon a bill being settled. 

Karl Schulmeisters Founder ExStreamVR

April 18th, 2015

>>Normal practice is for the customer to own the IP and the source code. This is how normally contracts are structured. <<

I would disagree.   Normally IP based on implementation is SHARED (cross licensed or similar).  The reason for this is pretty simple and discussed above:  Its very hard for a contract house to insure that one or another snippet of code is not replicated or reused.  Furthermore, the learning the developers acquire in debugging the system say running on Elastic Beanstalk for the first time,  is almost impossible to prevent from being reused.

Proprietary IP that is retained solely by the Client then does need to be called out - such as the conceptual IP and overall solution.   Furthermore if the Client expects that conceptual IP to be 100% protected, they need to include an exclusivity clause in the contract:  IE that the contractor will not work for another IoT company doing security for residential or commercial businesses for a period of X years... or something like that.  Otherwise its perfectly likely that the contractor WILL end up doing contract work on a competitors project and will apply some of the learnings from the first one to the second one