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 working on some piece of software while being "employed" by company A. I now want to continue working on the same software while being employed by company B. Company B wants the software to become open-source to prevent any future legal issues between company A and them. I will consult company A's lawyer to make sure it's fine by them, but I suspect it will be alright as company A is actually a public university which looks favorably on industry connections.

However, I am concerned by potential competitors getting access to that code before we make its results public. Is it possible to make the software open-source without sharing it with anyone but company B (neither in binary nor source form), or do I have to publish the software the minute it is made open-source or shared with anyone?

If the answer depends on the specific open-source license used, please be kind and provide details about the differences.

share|improve this question
    
Why Open Source? Just make sure that both Company A and Company B are fully aware that they have a non-exclusive license to use your software... No need to publish it, not even to them if you don't want to. –  Marjan Venema Aug 22 '11 at 9:02
    
@Marjan I don't know what a non-exclusive license really means, all I know is that making it open-source was a requirement by company B. Perhaps there are more consequences of making it open-source they were interesting in, other then preventing legal issues with company A? I honestly do not know, but it might be worth asking them. –  Oak Aug 22 '11 at 9:05
    
ask them, they cannot force you to make your software open-source. A ridiculous requirement if you ask me. As fof non-exclusive: it's what you get with each software package you buy that is not developed solely for you. I think Company B is concerned that Company A may be under the impression that you handed over the copyright to your software to them and may sue company B if you also give it to company B. So, ask Company B what their real concern is (instead of what solution they want = open source), and have the contracts with company A checked by a lawyer and renegotiate as needed. –  Marjan Venema Aug 22 '11 at 9:09
    
Also: read some actual licenses of software you bought. Though boring, it can help you to get a feel for the normal wording of such beasts. –  Marjan Venema Aug 22 '11 at 9:10
    
@Marjan to be clear, the point is to continue development of the software while being employed at company B, so I suspect what I need is something stronger than a non-exclusive license to use. I actually don't mind the open-source part, since that means any work I invest in the software while being employed by company B will remain available to anyone else, if in the future I do choose to release the software to the public. –  Oak Aug 22 '11 at 9:15
show 2 more comments

4 Answers

up vote 2 down vote accepted

Which license do you plan to use ? Because the terms may vary. I will copy/paste an extract from the GPL faq I used in another question (relevant if you decide to use this license) :

Does the GPL require that source code of modified versions be posted to the public?

The GPL does not require you to release your modified version, or any part of it. You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization.

But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL.

Thus, the GPL gives permission to release the modified program in certain ways, and not in other ways; but the decision of whether to release it is up to you.

If you choose the GPL, it means you just need to release the source code when you release the software.

But it is you who decides when to release your software.

share|improve this answer
    
Hmm, it looks like the key here is what the definition of "public" is, since I do share my code... but I guess it's safe to assume that sharing my code with one specific company does not mean "releasing it to the public". –  Oak Aug 22 '11 at 9:10
    
"the GPL requires you to make the modified source code available to the program's users" so as long as it isn't available for everyone, you don't need to give access to the code to everyone, just to A if they use your modified version. –  Jonathan Merlet Aug 22 '11 at 10:31
add comment

Did you work on the software during 'work' hours or as a personal project? If it was during work hours company B just want to cover their backsides as if company A turn round and claim as it was done on their time, it's their software and thank you very much for the cheque.

However if you get a sign off from company A to say that they're more than happy to let you use it however you want then great, if not you can say the source is open and just not publish it anywhere. I have loads of open source projects on my drive, but I won't be putting them online.

share|improve this answer
    
+1 for whether the work was done on personal time or not - that is very often a HUGE concern in these matters. –  Michael Kjörling Aug 22 '11 at 9:47
    
@Michael, yes, plus whether the work was done on/with company provided resources (hardware, software, etc). It is one of the reasons that I ensure that anything I do in personal projects is done on my own machines and with software licensed to me... –  Marjan Venema Aug 22 '11 at 10:30
    
I'd definitely say the work was done on "work hours", but as I said, I don't think company A - a university - will mind turning it into open-source. –  Oak Aug 22 '11 at 10:40
    
Hopefully they'll be supportive, but if they're not check your contract from them for a section about intellectual property ownership. A lot of companies will throw it in just so they can legally assert their right to the software in court if they have to. –  Nicholas Smith Aug 22 '11 at 10:44
1  
@Oak: Working for a university I can say this is not your decision to make regarding whether or not they will 'mind'. Discuss it with them and leave it at that plain and simple. –  Chris Aug 22 '11 at 11:32
add comment

You don't have to make it open-source whilst working on it for Company B. Company A has the right to do whatever they want with the source code you produced for them- including giving it to company B. It doesn't have to be everyone or no-one.

share|improve this answer
add comment

As the author of the source you can put it under two licenses. One can be the LGPL, while the other is the exclusive, closed-source deal you want with company B.

Go ahead and post the LGPL code on Github. You can even give the project a reasonable sounding name, or just give it a code name. The source will be out there, but you will still be able to enhance it using the company B license, and these changes you will not have to share on Github.

Then, if company A realizes it wants to charge fees (really, it's only company B that is concerned about this possibility) then you are in the end game and will need to switch to the open version. You are worried about keeping a competitive edge, but how you execute and work on this is far more important, and no one understands the code base or the problem as well as you do anyway.

share|improve this answer
add comment

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.