Serious questions to all the freelance programmers out there
-
In case you create a program for a specific customer, how do you ensure you will be able to continue working? I mean there are plenty of tools that can be reused, even tools that make you a good option for the job as you don't have to write them from scratch. What happens with that? Which kind of protection do the programmer has in terms of being able to reuse the work for other projects? Imagine I start working in a project for the customer X. I use some functions that I have in some libraries to create the program. Can the customer X sue me if I reuse those libraries in any circumstance? What if the customer asks to sign down a document that gives him the ownership of the code? Thank you all.
1. You should be aware that IP law varies between countries (and also between states in the U.S., for example). Consult a lawyer specialising in IP law! 2. For any other issues relating to IP, see point 1. IP lawyers can be expensive, but if you want to get into contracting, it is money well spent. Good luck!
If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack. --Winston Churchill
-
In case you create a program for a specific customer, how do you ensure you will be able to continue working? I mean there are plenty of tools that can be reused, even tools that make you a good option for the job as you don't have to write them from scratch. What happens with that? Which kind of protection do the programmer has in terms of being able to reuse the work for other projects? Imagine I start working in a project for the customer X. I use some functions that I have in some libraries to create the program. Can the customer X sue me if I reuse those libraries in any circumstance? What if the customer asks to sign down a document that gives him the ownership of the code? Thank you all.
First of all, they can't take out your mind so anything you have written can be (more or less) reproduced. Keeping the code is just a bit faster ;) . Secondly, there is not a single company that will sue you for writing or using a library that does something "known" like database access or openCV stuff eg. If there is a unique algorithm involved, even than will they never do something, because it is probably so specific for that problem (and specific for that company) you'll never use it anyway. So the question of to sue or not to sue is basically answered by asking yourself: Can I market this myself and earn bucket loads of money with it (and create competition)? Even then I heard that often the judge will rule in favor of the developer. In summary: in practice this occurs rarely, but it could be helpful to read the contract carefully and put your foot down if you disagree.
V.
(MQOTD rules and previous solutions)
-
In case you create a program for a specific customer, how do you ensure you will be able to continue working? I mean there are plenty of tools that can be reused, even tools that make you a good option for the job as you don't have to write them from scratch. What happens with that? Which kind of protection do the programmer has in terms of being able to reuse the work for other projects? Imagine I start working in a project for the customer X. I use some functions that I have in some libraries to create the program. Can the customer X sue me if I reuse those libraries in any circumstance? What if the customer asks to sign down a document that gives him the ownership of the code? Thank you all.
-
In case you create a program for a specific customer, how do you ensure you will be able to continue working? I mean there are plenty of tools that can be reused, even tools that make you a good option for the job as you don't have to write them from scratch. What happens with that? Which kind of protection do the programmer has in terms of being able to reuse the work for other projects? Imagine I start working in a project for the customer X. I use some functions that I have in some libraries to create the program. Can the customer X sue me if I reuse those libraries in any circumstance? What if the customer asks to sign down a document that gives him the ownership of the code? Thank you all.
What iv'e found in this day and age, is that vast majority of my clients think I just plug together open source lego bricks anyway. Unless I'm being asked to participate on a very closed, internal application for a client (EG: an internal tool written for desktop use) then they assume that the code and libraries I use, come from open source. NuGet/Npm and so on... So they often don't question me about code ownership, as long as what they get works, at least with web facing projects their usually happy. As I say though, if it's internal, binary and not for public consumption then there usually is a negotiated contract before either party signs.
-
In case you create a program for a specific customer, how do you ensure you will be able to continue working? I mean there are plenty of tools that can be reused, even tools that make you a good option for the job as you don't have to write them from scratch. What happens with that? Which kind of protection do the programmer has in terms of being able to reuse the work for other projects? Imagine I start working in a project for the customer X. I use some functions that I have in some libraries to create the program. Can the customer X sue me if I reuse those libraries in any circumstance? What if the customer asks to sign down a document that gives him the ownership of the code? Thank you all.
If you are an independent contractor, your work done for another entity that contracts with you belongs to them - they have the intellectual property rights unless something in the written contract says otherwise. However, a good practice that protects you and allows shareable usage between customers, is to create your own libraries on your own time, then make the use of them a condition of the contract. For example, the entity to whom you contract has the right to use your libraries freely within the application you wrote for them (as they may revise and extend the application over time using other developers), but only that application without paying a licensing fee (which will in reality rarely happen). Normally, they would get a copy of the library's source code at the time the contract is fulfilled, and sign a non-disclosure statement such that they cannot divulge the code to others. That gives you copyright protection over your libraries, the contracting entity the right to alter your library code for their own use, and possibly create a revenue stream for you by marketing your libraries to other developers.
-
In case you create a program for a specific customer, how do you ensure you will be able to continue working? I mean there are plenty of tools that can be reused, even tools that make you a good option for the job as you don't have to write them from scratch. What happens with that? Which kind of protection do the programmer has in terms of being able to reuse the work for other projects? Imagine I start working in a project for the customer X. I use some functions that I have in some libraries to create the program. Can the customer X sue me if I reuse those libraries in any circumstance? What if the customer asks to sign down a document that gives him the ownership of the code? Thank you all.
As a manufacturing engineer AND application developer, I would compare code to machine design. What I explain to tooling and equipment suppliers is, if your quote has design (code) charges we (the customer) own the design making it proprietary to us the customer. If you the supplier want to own the design (code) specify in your quote that the design is proprietary and show me, that we the customer, are not paying for design time.
-
In case you create a program for a specific customer, how do you ensure you will be able to continue working? I mean there are plenty of tools that can be reused, even tools that make you a good option for the job as you don't have to write them from scratch. What happens with that? Which kind of protection do the programmer has in terms of being able to reuse the work for other projects? Imagine I start working in a project for the customer X. I use some functions that I have in some libraries to create the program. Can the customer X sue me if I reuse those libraries in any circumstance? What if the customer asks to sign down a document that gives him the ownership of the code? Thank you all.
Very simple it depends on what you have contracted to do. If there is nothing specific in the contract then you own the code as the author and for many clients that's all they need and expect. However some clients might insist they own the copyright to the new code, if agreeable get them to pay you well! If you are working or extending their code - then it could be implied that this is the case - as clearly they own the copyright of the original work and they are paying you in a way analogous to an employee, where they own the copyright by default. Bottom line - Get the contract right for you and the client and that you both understand it!!!!
-
1. You should be aware that IP law varies between countries (and also between states in the U.S., for example). Consult a lawyer specialising in IP law! 2. For any other issues relating to IP, see point 1. IP lawyers can be expensive, but if you want to get into contracting, it is money well spent. Good luck!
If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack. --Winston Churchill
But, in most cases, you can get a tax deduction for your business.
-
With no legal justification for any of this, just agreements (often verbal) this is what I do: I have a large open source library that I often use in whole or in part on contracts. When I use the pieces of my open source code (or anyone else's) I put a clear comment at the top of the file that this code came from whatever repo. I even document code snippets I find on SO that way. So, that's the "past", as it were, as I'm using code I've developed independently, on my own. Now, I also tend to work for some enlightened contractors - a couple of which I have a long term (20+ year) relationship, so there's a high degree of trust. I tend to separate things into two camps -- general purpose code that is not specific to the contract work, and the rest that is. I don't bill the customer for the general purpose code (though I do bill for the customization for their particular needs, and that code stays with them.) That arrangement is explicitly stated and, particularly when I end up writing an article on the GP code, it's actually appreciated because the client sees the benefits in the peer review here on CP. Now, for a new client relationship, I don't just blindly do that. I approach the client with the idea of this separation between the GP code and the customer specific code, suggesting the benefits of putting the GP code into the public domain, particularly as it results in peer review and documentation, I'm not billing them for it, and they're already benefiting (sometimes considerably) from the open source community at large and my OS code in specific. I've never had a client disagree with that arrangement, and they appreciate that I come to them with their interests in mind first, requesting permission, essentially. That said, I usually do contract work for small companies where I'm communicating directly with the owner or decision maker, I'm probably the only developer working for them, or if not, I'm pretty much flying solo on a specific project.
Joan M wrote:
What if the customer asks to sign down a document that gives him the ownership of the code?
See Kevin's answer. It also gets more complicated when I'm hired as an employee of a job shop that then contracts me out to a third party. But as a direct contractor, the answer would be "no." The real and separate issue usually tends to be how they can protect the code I write from appearing in the public, and I totally agree with them that that is something that neither they nor
I do very much the same as Marc. Customers know up front there are two kinds of code they get: Their code and my "library" code. The former is all theirs, and only theirs. Proprietary. The latter is for anyone. The customer can get the newest version years after I worked for them if they want it. I only deal with people who are not the sort of people who would sue about code, in any case. They have better things to do with their resources. For my part, I never, ever do contracts for outfits who compete with other outfits I've done contracts with. To me, it would be unethical to do so. Admittedly, "never, ever" doesn't apply to one organization which was and is so big they compete with everybody. In such a case, I must think of the organization as being only the tiny section/business unit I worked with.
-
It's the smart thing to do man. I'll check it out...
Jeremy Falcon
Give them a copy of your terms including a statement that you own the rights to all of your work.
We're philosophical about power outages here. A.C. come, A.C. go.