Question

I am planning to develop a mobile app. But I don't want my developer team to have copies of my code in their local system (like in the case of git where you can clone the repo to your local system).

What I need
I need the code to be on a remote server.
The developers log in to the server and develop there (So they will not have the repo in the local system).

What is the proper solution for the above requirement? A problem I see is running the code to see the UI, since in app development we use emulators or phones to run the code.

Was it helpful?

Solution

You could use a desktop virtualization software like Citrix. That way their personal computers are just dumb terminals while the actual development environment runs on a server your control.

But keep in mind that:

  • Developers will be far more productive when they can work on their own machines using their own tools. Which means they will get the work done in fewer hours, which reduces the whole cost of the project.
  • Technical issues with this setup will lead to even more developer hours being lost.
  • Some things might become difficult to test. For example, when the app responds slowly to user input, the developers won't realize that it's their app being slow and not just their internet connection to the virtualization server.
  • It does not stop a determined developer from stealing any sourcecode or data. There are just too many ways to do that.
  • You really shouldn't work with people you don't trust. There are far more ways in which they can sabotage your project.

For those reasons, such setups are very unusual in the software industry. The usual solution to coordinate multiple developers is to just give them all access to a common sourcecode repository and let them do commits with a sourcecode management software like Git.

OTHER TIPS

There is no way to avoid giving developers access to the code. If they can see it they can always copy paste it.

That being said, there are potentially valid reasons to have code be remote. Say you trust your developers to not "steal" the code, but you don't trust that their machines have hard drives encrypted at rest and you are fearful of that kind of theft.

In cases like that, you can use services like AWS Cloud 9 or just plain ssh to have them "log in" to a remote machine. Be warned though, setting up a workflow like this takes a ton of time initially, will very likely lower your coders productivity, might cost more money for you (since you'll need to run mobile builds remotely too), and will probably be jank as all heck.

You can use remote desktop systems. That's not too unusual. You don't need anything fancy here, even just setting up a box and letting the developer RDP into it from outside. This is pretty common in situations where the dev environment is difficult to duplicate, or when security is particularly important (working with health or financial data, for example).

But, realize, that

  • No programmer worth their salt will find that a hindrance if they really want to steal the code
  • The code probably isn't worth all that much because once the programmer understands it - they can simply recreate it.

So if your concern is preventing developers from stealing the code, you can't. And you wouldn't want to hire programmers who couldn't.

Licensed under: CC-BY-SA with attribution
scroll top