Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have a client who would like me to deliver the source code with a developed application binary.

The issue I have is that the code base I have created over the years and is used as a template for most applications I write is far larger than the scope of the projected.

I also intend to use it for a product so really don't wish to provide it for a relatively small project.

I'm guessing this is not the first time that this has happened in this industry, what is the best way to circumvent this issue?

I'm guessing things like shared libraries could help?

share|improve this question
5  
What do they need it for? Chances are they only want to be sure to have the code in case you go out of business. You possibly can add licensing that limits allowed usage. At one time a company I worked deposited (right word?) source code with a lawyer company as security for such a case. –  thorsten müller 19 hours ago
1  
Custom software should be delivered with source code. Otherwise, it's a retail product. I don't think they need a frozen product in case anything happens to you/your business later down the line. But do charge accordingly. Also consider putting your library code in a compiled library (if supported by your language) so they can modify the software, compile it but not easily reuse your library by itself. –  CodeAngry 14 hours ago
3  
@CodeAngry "should"? No. Only if they pay the right amount of money. –  Lohoris 12 hours ago
1  
@Lohoris If it's a software built per their specification... it's theirs, unless agreed otherwise. –  CodeAngry 11 hours ago
5  
@CodeAngry nope. It's yours, unless agreed otherwise… –  Lohoris 11 hours ago

5 Answers 5

The first thing to keep in mind is that source code has value separate from the binaries. It is perfectly reasonable to either refuse to sign a contract that requires source code delivery, or to insist on extra payments for source code delivery. Contracts are two-way documents. Do not let the other part dictate what is required just because they are "big companies" and "do this all the time". First, decide what you are willing to deliver and how you want to be compensated. Then take their contract to a lawyer and work out what needs to change. Then, you negotiate.

Don't do what a lot of young people do when they start contracting. Don't just sign because it seems like they have lots of experience and you don't. That's a good way to get ripped off.

Look into why they want the source. They may want it so they have the option of using another developer later on. Or they may want it just because they are afraid you might get hit by a bus and suddenly they'll be left with binaries that they cannot improve. If it is this second case, look into a Software Code Escrow Service. These services hold the source code in case you go bankrupt or otherwise are unable to maintain the software. This may satisfy both your desire to keep your code proprietary to service other customers and their desire not to be left holding the bag with an unmaintainable set of binaries if something bad happens.

share|improve this answer
1  
"left hanging the bag"? –  OrangeDog 14 hours ago
5  
s/hanging/holding/g –  Dan Pichelman 12 hours ago

Remember that any source code requires a license. If you hand over source code, the company can use the source code to do anything that the license allows, and anything beyond that is copyright infringement. So if you hand over source code, you would have a contract that makes absolutely clear that you retain the exclusive copyright of the source code, and exactly what uses of the source code are allowed. And of course source code + license wouldn't come for free.

A major company would be unlikely to infringe your copyright, because being caught would cause a major damage to their reputation, apart from financial damage. On the other hand, paying out for software with no guarantee that any problems can be fixed in the future, might be unacceptable for the client.

share|improve this answer
4  
BUT also consider that detecting source code misuse is incredibly difficult, especially if you aren't searching for it. Don't blindly trust a license: for some people it's just a piece of paper. –  Lohoris 11 hours ago
    
@Lohoris however, if you suspect that an application is using your code, it's really easy to tell, no matter that it's just a binary. Basic reverse engineering skill is all you need to be sure. –  AcidShout 3 hours ago

The way to deal with this is to negotiate.

If they want source code, then they should be prepared to pay for it, and it is up to you to decide how much that should be.

On the other hand ... if they are not prepared to pay what you want, they may "take their business elsewhere".

Welcome to the world of business :-)


And when you talk to prospective customers in the future, be sure to mention this issue early on ... to avoid wasting everyones' time.


It is also worth noting that what you are doing is anathema for open source developers, and for (educated) customers who are looking for open source solutions.

share|improve this answer

Your question is, what is the best way to circumvent this issue? But what do you see as the issue? Others have correctly pointed out that it's a matter of negotiation: everthing has a value, and it's up to you give the client a price for providing what's asked for.

But you must also carefully consider—and write into the contract—the implications of providing the code. Is it just so the client can see it? Can the client modify it? And in particular, would you consider giving your client exclusive rights to the code base you have created over the years and is used as a template for most applications so that you can never again use it yourself in the future?

You need to ensure the contract explicitly states who has rights to use the code, and in what ways.

share|improve this answer

"No" is a perfectly fine answer, actually it's an incredibly useful answer which for some reason I can't understand is very underrated.

"Hi, we have suddently decided we just want source code too, free of charge."
"Hi, no."

It's not that difficult, really.

Then, if they wish to pay egregious amounts of money over what they already owe you, you might give them a trimmed version of your application, which includes only the sources they actually need, and taking care they get absolutely non-exclusive rights.

Don't complicate simple things.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.