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've been a freelance web developer for 6 years. I have an issue that's bothering me and I'd like some advice. (Do note: I want advice from experienced freelance developers, or people who have been in these situations before and can speak from experience, not from people who are just guessing...)

I've worked for a few years for Client A, and developed web app for them. Now I have a new client, Client B, and I'm developing a web app for them.

Over the years, I've developed many general-purpose tools that I've used for Client A. Thankfully, most of them are in a separate open-source repo, and I've developed them on my own time. But, some tools are on Client A's repo and legally are the IP of Client A. They're not specific to that client's app, but are generic (like tools for handling times and date, url manipulating tools, etc.)

Now, as I've started work on Client B's code, I copied all the tools and I've been using them for Client B's project. I know it's illegal since they belong to Client A, but I'm wondering how much of a big deal it is. I'm asking not for the sake of these 2 clients, who are small non-technology companies who are unlikely to care or even know, but for similar situation in the future of my consulting career.

I considered asking Client A to open-source the tools, but I rather not. I'm the company's only developer, and a request like that might seem suspicious to the CEO. From the CEO's point-of-view, he has (1) little understanding of the situation and (2) something to lose and (3) nothing to gain and (4) a lot of important things to work on that are critical to the company.

I'd like your advice, especially hearing what you did in such situations and whether it turned into a problem in practice.

share|improve this question

closed as off-topic by gnat, GlenH7, MichaelT, Kilian Foth, World Engineer Sep 16 '13 at 21:26

  • This question does not appear to be about software development within the scope defined in the help center.
If this question can be reworded to fit the rules in the help center, please edit the question.

4  
"I know it's illegal..." -- Programmers is not tour giving legal advice –  gnat Sep 14 '13 at 11:00
    
I'm more interested in practical advice rather than legal advice. Of course, I realize people here are not lawyers, this is not legal consultation, everything I do as a result is at my own risk, etc. –  Worried Developer Sep 14 '13 at 12:45
3  
i would think if you had more carefully crafted your license with the first customer you would not be obligated to give them exclusive rights to your works. and you may be able to retroactively negotiate with them that you license the code to them indefinitey,but retain the right to modify and redistribute said code, without their permission, because you still own it. –  Andyz Smith Sep 14 '13 at 12:46
    
+1 to @AndyzSmith. Yes it depends on the contract, only on the contract, and nothing but the contract. Don't encourage practical thinking here --you should be obliged by your contact. –  Monster Truck Sep 14 '13 at 14:25

2 Answers 2

I've only ever seen contracts where the product you create, including any code, are the property of the client you are working for. If you developed it whilst working for them - it's theirs and you shouldn't reuse it.

Having said that I've taken code I've done for one client and used it on projects for other clients/Jobs, but only small amounts of code, not compiled libraries and its often been refactored so you'd never really be able to tell.

So if I were you I wouldn't use a library developed for client A with client B but code snippets should be fine, how would they ever know?

share|improve this answer

You already realize that it's illegal. That means that when (likely not if) someone finds out, you'll suffer some major damage to your reputation. That's going to affect your ability to get more work in the future. Your CEO may have little understanding of technology so he may not appreciate the difference between a generic infrastructure component and a critical piece of functionality but I'm sure he's got a firm grasp of legality and the idea that he paid for something that you've stolen to make money somewhere else.

If you don't want to have a conversation about getting permission to use some libraries at other clients, you need to rewrite the libraries for the new client. It is possible, though, that you can make sharing code a win-win for both clients. Assuming that the two clients aren't direct competitors, you can talk with the CEO of A to suggest that if he allows you to open source (or just grants you a license to use the code at other clients), you'll be able to use any changes you make at B for A. Assuming you get B to make a similar agreement, A would benefit from any generic components you build for B. If A sees that you're giving them an opportunity to leverage some code they own to essentially get some additional free work from you without costing them anything, that's a potentially very interesting proposition.

share|improve this answer

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