Freelancers: How do you cope with that?
-
Hi all, - Customer asks you to make a program. - To do that program you may need functions, code snippets... that you already created time ago. - The customer wants you to sign down a confidentiality contract in which it states that the source code is customer's property. - The problem with this is that you must sign down the confidentiality contract before starting working: you make the program design afterwards so you don't know what you will reuse at the end. - Working in the industrial sector programming, libraries usually are not encrypted/linked therefore it's not possible to specify that all the code in certain library or file is left out of the contract, and in some systems you can't separate the code in files as you'd like... - I can't give the source code at the end as some of my customers ask me to store the repositories in their servers so the code is directly there since the beginning. I need to get legal advice but the lawyers I've contacted doesn't understand a thing about my questions... Have you solved this kind of situation? And if you have... How? Thank you all! :beeR:
www.robotecnik.com[^] - robots, CNC and PLC programming
Personally, I would move on to another client. My old contracts stated that the client's intellectual property belonged to them and the consultant's intellectual property belonged to the consultant. When I would not provide the software, the attorneys argued over what this meant. My attorney, of course said the source code belonged to me. We settled, but they never got the source code. The next time this came up, I was clear with the client what the IP clause meant. I explained that they would have the right to sell the end product and I would be available to customize the software for their needs under a separate contract. They tried to sell the software, but the prospective buyer demanded the source code, so my client sued me. I hired an IP attorney to handle the situation, but costs mounted. It was looking like it would cost me $40K to settle the case in mediation, so I took another friend's advice: He had been in a similar situation and when he made the final payment on his $50K attorney fees, his attorney told him that he should have just walked away. This is what I did. They didn't get the source code and the next year they filed for bankruptcy. The last situation was a lot easier to resolve. I provided the client a contract that specifically said they would not get the source code. They thought that they were smarter than me, so they didn't sign the contract. At the end of the project, they owed me a couple thousand dollars, but demanded that I provide the source code before they would make the final payment. I suggested that they contact an attorney. In case you don't know it, the contractor owns the source code unless the right is specifically stated in a contract (if you are an employee, the source code belongs to the company). Their attorney advised them to pay or I would own their company. They paid up with no attorney cost for me. Easy-peasy! Never saw the client again. Everything I developed was on my own equipment using commercial software, which I paid for. If the clients had gotten the source code, it would have been useless for them because they didn't have any of the commercial software packages. Again, I recommend walking away from the contract. If you need to talk to an attorney, you need an Intellectual Property (IP) Attorney. Mike
-
Hi all, - Customer asks you to make a program. - To do that program you may need functions, code snippets... that you already created time ago. - The customer wants you to sign down a confidentiality contract in which it states that the source code is customer's property. - The problem with this is that you must sign down the confidentiality contract before starting working: you make the program design afterwards so you don't know what you will reuse at the end. - Working in the industrial sector programming, libraries usually are not encrypted/linked therefore it's not possible to specify that all the code in certain library or file is left out of the contract, and in some systems you can't separate the code in files as you'd like... - I can't give the source code at the end as some of my customers ask me to store the repositories in their servers so the code is directly there since the beginning. I need to get legal advice but the lawyers I've contacted doesn't understand a thing about my questions... Have you solved this kind of situation? And if you have... How? Thank you all! :beeR:
www.robotecnik.com[^] - robots, CNC and PLC programming
You could place a copyright notice in the header of any pre-existing code files that you plan to use, and provide a license file pertaining to that code. Perhaps you could persuade them to accept something licensed under The MIT License[^] Handling code snippets might be tricky, but if they are trivial, you could just rewrite them slightly for this customer. This Stack Exchange post may be helpful: copyright - How does fair use apply to code snippets? - Software Engineering Stack Exchange[^] Caveat: I am not a lawyer, but this is the type of approach I would use.
-
Hi all, - Customer asks you to make a program. - To do that program you may need functions, code snippets... that you already created time ago. - The customer wants you to sign down a confidentiality contract in which it states that the source code is customer's property. - The problem with this is that you must sign down the confidentiality contract before starting working: you make the program design afterwards so you don't know what you will reuse at the end. - Working in the industrial sector programming, libraries usually are not encrypted/linked therefore it's not possible to specify that all the code in certain library or file is left out of the contract, and in some systems you can't separate the code in files as you'd like... - I can't give the source code at the end as some of my customers ask me to store the repositories in their servers so the code is directly there since the beginning. I need to get legal advice but the lawyers I've contacted doesn't understand a thing about my questions... Have you solved this kind of situation? And if you have... How? Thank you all! :beeR:
www.robotecnik.com[^] - robots, CNC and PLC programming
Could you grant the customer an appropriate non-exclusive licence to the code? One that satisfies their desire to have a copy of the source that they can keep and modify, but they are not the sole owners of that code? Probably most important to you is that you don't want them to be able to restrict you from using it elsewhere, even on a competitor's project. That's the same kind of license they'd be getting from any open source code you used in their project. If you're developing the code you're claiming ownership of at the same time as working on their project, then you might have difficulty proving you didn't charge them for developing that code, thereby making them the owner of it instead of you. So don't do that.
I live in Oregon, and I'm an engineer.
-
Hi all, - Customer asks you to make a program. - To do that program you may need functions, code snippets... that you already created time ago. - The customer wants you to sign down a confidentiality contract in which it states that the source code is customer's property. - The problem with this is that you must sign down the confidentiality contract before starting working: you make the program design afterwards so you don't know what you will reuse at the end. - Working in the industrial sector programming, libraries usually are not encrypted/linked therefore it's not possible to specify that all the code in certain library or file is left out of the contract, and in some systems you can't separate the code in files as you'd like... - I can't give the source code at the end as some of my customers ask me to store the repositories in their servers so the code is directly there since the beginning. I need to get legal advice but the lawyers I've contacted doesn't understand a thing about my questions... Have you solved this kind of situation? And if you have... How? Thank you all! :beeR:
www.robotecnik.com[^] - robots, CNC and PLC programming
1. Explain that there are some code sections in the form of existing source code which are *already part of your own IP* and therefore you are unwilling to allow the customer to "own" these. However you are willing to provide a free license for the customer to use and redistribute said functions as part of the final binary. Or let them take the code and develop based on it freely without owing you anything else. 1a. Side-option here is to very quickly open-source that code, now the customer literally cannot own it, downside is, neither do you. But at least it's pretty easy to explain - "some parts of this code cannot comply with the contract as they are open-sourced under the 'Do whatever you want' license" If you are OK with that then this probably a good option as it forces the customer to compromise on the contract text. 2. If #1/1a doesn't fly and the customer refuses to modify the agreement - then your price just went up by a factor of 10-50. I'm not joking - the customer is essentially asking you to hand over something that is *already your IP*, and for that they need to pay, since you could get into legal issues later on if you ever re-use that code so you must be compensated for the loss of that IP. If a client refused to budge on this I'd fire them, I know that might not be an option for you but I would encourage you to dig your heels in a little bit on this. Chances are this is not the customer trying to own all your stuff out of greed, just a case of a standard contract where the customer wants to make sure you don't screw them later on by claiming ownership of the final codebase in its entirety, of do a bait and switch by forcing them to "licen$e these functions I own" later on.
-
Hi all, - Customer asks you to make a program. - To do that program you may need functions, code snippets... that you already created time ago. - The customer wants you to sign down a confidentiality contract in which it states that the source code is customer's property. - The problem with this is that you must sign down the confidentiality contract before starting working: you make the program design afterwards so you don't know what you will reuse at the end. - Working in the industrial sector programming, libraries usually are not encrypted/linked therefore it's not possible to specify that all the code in certain library or file is left out of the contract, and in some systems you can't separate the code in files as you'd like... - I can't give the source code at the end as some of my customers ask me to store the repositories in their servers so the code is directly there since the beginning. I need to get legal advice but the lawyers I've contacted doesn't understand a thing about my questions... Have you solved this kind of situation? And if you have... How? Thank you all! :beeR:
www.robotecnik.com[^] - robots, CNC and PLC programming
-
1. Explain that there are some code sections in the form of existing source code which are *already part of your own IP* and therefore you are unwilling to allow the customer to "own" these. However you are willing to provide a free license for the customer to use and redistribute said functions as part of the final binary. Or let them take the code and develop based on it freely without owing you anything else. 1a. Side-option here is to very quickly open-source that code, now the customer literally cannot own it, downside is, neither do you. But at least it's pretty easy to explain - "some parts of this code cannot comply with the contract as they are open-sourced under the 'Do whatever you want' license" If you are OK with that then this probably a good option as it forces the customer to compromise on the contract text. 2. If #1/1a doesn't fly and the customer refuses to modify the agreement - then your price just went up by a factor of 10-50. I'm not joking - the customer is essentially asking you to hand over something that is *already your IP*, and for that they need to pay, since you could get into legal issues later on if you ever re-use that code so you must be compensated for the loss of that IP. If a client refused to budge on this I'd fire them, I know that might not be an option for you but I would encourage you to dig your heels in a little bit on this. Chances are this is not the customer trying to own all your stuff out of greed, just a case of a standard contract where the customer wants to make sure you don't screw them later on by claiming ownership of the final codebase in its entirety, of do a bait and switch by forcing them to "licen$e these functions I own" later on.
Member 10346655 wrote:
Side-option here is to very quickly open-source that code, now the customer literally cannot own it, downside is, neither do you
Open sourcing doesn't affect ownership. At least in the US, the copyright holder owns the code and distributes the code with a license. The license states what is required to use or extend the software. Most open source software uses one of a few well-known licenses such as the GPL, LGPL, MIT, BSD, or Apache.
-
Hi all, - Customer asks you to make a program. - To do that program you may need functions, code snippets... that you already created time ago. - The customer wants you to sign down a confidentiality contract in which it states that the source code is customer's property. - The problem with this is that you must sign down the confidentiality contract before starting working: you make the program design afterwards so you don't know what you will reuse at the end. - Working in the industrial sector programming, libraries usually are not encrypted/linked therefore it's not possible to specify that all the code in certain library or file is left out of the contract, and in some systems you can't separate the code in files as you'd like... - I can't give the source code at the end as some of my customers ask me to store the repositories in their servers so the code is directly there since the beginning. I need to get legal advice but the lawyers I've contacted doesn't understand a thing about my questions... Have you solved this kind of situation? And if you have... How? Thank you all! :beeR:
www.robotecnik.com[^] - robots, CNC and PLC programming
Joan M wrote:
- The customer wants you to sign down a confidentiality contract in which it states that the source code is customer's property.
Confidentiality is not ownership. Things that you explicitelly develope for them, OK. Snippets that you own before working for them, should not be affected. Things that are everyday functions is just not possible... they don't own "hello world", "foo", "boo", the .Net Framework or the windows API.
M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you Rating helpful answers is nice, but saying thanks can be even nicer.
-
Joan M wrote:
- The customer wants you to sign down a confidentiality contract in which it states that the source code is customer's property.
Confidentiality is not ownership. Things that you explicitelly develope for them, OK. Snippets that you own before working for them, should not be affected. Things that are everyday functions is just not possible... they don't own "hello world", "foo", "boo", the .Net Framework or the windows API.
M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you Rating helpful answers is nice, but saying thanks can be even nicer.
-
yes... those should be 2 separate documents, but their lawyer made a strange mix there... ^^¡ and I'm not worried about confidentiality... but for being able to reuse code in the future...
www.robotecnik.com[^] - robots, CNC and PLC programming
Joan M wrote:
but for being able to reuse code in the future...
As others said... Before pasting your functions to their project... CTRL+H (find and replace) and use var1, var2 and so on... ;P :laugh:
M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you Rating helpful answers is nice, but saying thanks can be even nicer.
-
Joan M wrote:
but for being able to reuse code in the future...
As others said... Before pasting your functions to their project... CTRL+H (find and replace) and use var1, var2 and so on... ;P :laugh:
M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you Rating helpful answers is nice, but saying thanks can be even nicer.