El asunto es que el robo de código es algo que puedes perseguir después judicialmente. Si conoces esos casos y no se ha puesto una denuncia... la culpa no es sólo de quien se lo llevara.
Vamos, que si realmente se llevan código que te pertenece, entonces puedes denunciarles y es un delito. Ojo que estoy hablando de
código y
que te pertenece. Es decir, que si se llevan la
idea, entonces no puedes hacer nada. Y según el contrato que firmes con ellos, tendrás que especificar los términos de propiedad sobre el código que hagan.
En MS como en otras muchas el mecanismo básico es ese: Además de tu contrato firmas unos acuerdos de confidencialidad y no competencia (1). Si quieres una cita de alguien que ha trabajado en Microsoft:
"At Microsoft, I've had access to the source code for Halo 1 & 2, Internet Explorer, MDAC, MSXML, the .NET Frameworks and CLR, SQL Server, SQLXML, Virtual PC, Visual Studio, Windows, the Xbox and Xbox Live, and probably several other projects that I've forgotten about." [
aquí]
Es un desarrollador y no, no es que haya trabajado en todos esos proyectos. Pero ha tenido acceso libre a su código fuente.
Otra:
"I’ve been working at Microsoft now for approximately 10 days [...] The windows source code is HUGE. I was having a lot of difficulties trying to find the source of my component" [
aquí]
Como ves desde el primer día tiene acceso al código fuente entero de Windows.
Si lo que quieres son medios técnicos, depende en cierta medida del tipo de aplicación que estés desarrollando. Como decía antes si puedes presentar ese código ya existente en forma de librería (una librería dinámica o estática contra la que compilar) y una buena documentación de los métodos que proporciona, entonces los programadores no necesitan nada más que eso, los binarios y la documentación.
El código fuente lo puedes tener en un repositorio en el que estos programadores no tengan acceso. Supongo que sabes lo que es un sistema de control de fuentes, ¿no? Cualquiera te permite dar acceso a unas personas sí y a otras no y dar acceso a determinadas partes sí pero a otras no (si tu código está bien organizado, claro).
Sea como sea, restringir tanto el acceso al código, personalmente no creo que sea bueno. Ni para el proyecto, ni para la empresa.
(1) Los acuerdos de no competencia van más allá del código fuente. Generalmente estipulan que el empleado no puede trabajar en algo que haga competencia directa a la empresa. Normalmente se firman durante un periodo determinado (p.ej. mientras dure el contrato más 6 meses). Como es lógico, a cambio de firmar esto, el desarrollador debe recibir alguna compensación (que suele ser un sueldo más alto o una indemnización al terminar el contrato).