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.

This question already has an answer here:

I have a popular web-based app, and now suddenly my main developer has disappeared. Although I've found other great developers but I don't want to distribute the source code to everyone. Is there any way I can have them work on it while keeping the source code safe?

Thanks

share|improve this question

migrated from stackoverflow.com Jul 12 '11 at 6:47

This question came from our site for professional and enthusiast programmers.

marked as duplicate by GlenH7, MichaelT, Kilian Foth, gnat, Bart van Ingen Schenau Dec 4 at 13:19

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

10  
kind of hard to work on code without the code dont ya think? non-disclosure agreement i guess? –  Jesus Ramos Jul 12 '11 at 6:27
3  
Make them sign an agreement? –  tjameson Jul 12 '11 at 6:28
3  
NDA won't cover you? –  Stoosh Jul 12 '11 at 6:28
19  
If you don't trust your developers, you shouldn't have hired them. –  Flimzy Jul 12 '11 at 6:30
5  
If you treat people right they won't rip you off. They're unlikely to 'suddenly disappear' too. –  CurtainDog Jul 12 '11 at 7:10

5 Answers 5

Not really, I mean you could modularize your app in various ways, but then you'll get a fraction of the work out of the devs working on it that you could.

Fact is that developers have to be the product elite - if they're going to be any good at their job they need to know your application inside and out. They need to know where it's good and they need to know where it could be better but you don't have time to fix that right now.

You're stuck trusting them both ways - if you can't trust them with your code then you also can't trust them not to add something that belongs to someone else or that's been GPL'ed and then your whole app's in trouble.

Your best bet is not security by hiding the code from them, but legal protection if they further distribute it.

  • They have to sign an NDC - giving your code to anyone else is clearly theft.
  • It should be very clear that existing code is your IP, and any new code they contribute to your code base is also your IP - they're breaking employment terms if they contribute something that can't have its exclusive rights transferred to you.
  • They can contribute to other products while working for you (in their own time) but contributing to a competitor should be clearly defined as gross misconduct.

Software products are not just about code, they're about the knowledge of the application. A new dev can take months to get up to speed, and it takes ages to recover from someone leaving who truly knows your app.

Or to put it another way: spend 5 years writing a large and complex app, move the whole code base to a brand new team and the original team will still be able to have a 2.0 version out before the new team adds any decent functionality to the old code base.

Therefore, most important of all: keep them happy - their in-depth knowledge of your code is invariably worth more than the code anyway.

share|improve this answer

You can share only specific modules to a particular developer. At least during first few months. Of course, if you have appropriate architecture.

share|improve this answer
  1. Hire professionals
  2. Keep them as honest as possible with a written agreement about the terms of use and disclosure of your code.
  3. Give them a reason to want to see your venture become successful and not someone else's.
  4. Find a lawyer if you suspect a competitor stole your code and hope they made a lot of money from it and will settle.

A small oil drilling company found a geologist selling data to competitors. After firing this person, they gave everyone stock in the oil wells. Plenty of incentive for their wells to be drilled in the best location and not some competitor's.

share|improve this answer
1  
I'd have recommended criminal prosecution, but that's a great example of both the dreaded consequence and solution to prevent it. –  Patrick Hughes Jul 12 '11 at 17:40

The best that you can do is to modularize code and have developers only access source for modules they need to work on. Use Maven, for example. Of course, you or someone you really trust will have to do integration.

share|improve this answer

It may be possible to work on certian things but any changes to any primary functionality are going to be very difficult to do with out access to the system. In addition you risk introducing conflicting logic and redundant code because you do not want to allow your developers to see what already exists.

Your best option for securing your code would be to have them work onsite, in a location where they are not able to bring personal items in or out, On a machine with USB access restricted (preventing usb drives). Do not provide any internet access(at least on the machines where the code exists) so that the code can not be sent outover the internet. You will also want to limit network access to these computers from machines on your network that have internet access. A seperate network not connected to any outside network is probably the best way to make sure of this.

This will help keep your sourcecode from being duplicated outside of your control. But it is no guarantee. This is also going to reduce the productivity of your developers. Not to mention unless the developers buy in to the need for the security it will likely impact morale.

share|improve this answer

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