Actualización: 2 de septiembre Las respuestas de @mysterycommand y @Hiroto han dado una buena visión y me han impulsado a ser más claro. He reformulado mi pregunta con detalles explícitos; la intención es la misma, espero que sea más clara ahora.
Como desarrollador de software autónomo, me he encontrado con un contrato con una cláusula de "trabajo por encargo" que me convierte en un empleado de mi cliente. No he firmado este contrato, pero me ha hecho pensar:
¿En qué momento necesitas el permiso de tu empleador para contribuir al código abierto que utilizas en el trabajo? (vea los escenarios más abajo)
En el desarrollo de software es habitual utilizar software de código abierto con licencia permisiva, es decir, que se puede reutilizar comercialmente. La empresa para la que trabajas no está involucrada en el código abierto, pero tú decides utilizarlo en el trabajo (un marco de aplicación, un blog, un cms, por ejemplo). En EE.UU., se supone que el empleador suele ser el propietario de los derechos de autor del trabajo realizado. En el transcurso de tu trabajo, escribes algo de código que quieres aportar a la comunidad:
- Encuentras un error en un código abierto que utilizas en el trabajo y lo arreglas. Como mucho, has cambiado unas pocas líneas, incluso unos pocos caracteres. ¿Necesitas el permiso de tu empleador para enviar un pull request para contribuir con tu cambio al repo público del proyecto?
- Tienes una pieza de código abierto a medio terminar que has empezado en tu tiempo libre. En el transcurso de tu trabajo, acabas viendo la utilidad de tu código, por lo que optas por utilizar tu propio código previamente escrito. Acabas necesitando retocar el código, arreglar una función o añadir una nueva característica para poder completar efectivamente tu trabajo. ¿Necesita el permiso de su empleador para publicar los cambios que hizo en el módulo que empezó en su tiempo libre pero que mejoró en el curso de su trabajo para la empresa?
Los dos casos anteriores me parecen muy grises, por lo que sería de gran ayuda su comprensión. A continuación, un ejemplo que parece menos gris en cuanto a la obtención del permiso (parece un sí obvio), pero que lleva la cuestión al siguiente paso lógico:
- En el transcurso de tu trabajo ves la utilidad de crear un módulo reutilizable que te ahorrará tiempo en futuros proyectos en el trabajo. Escribes este módulo y te das cuenta de que es un software bastante bueno y que otras personas (ajenas a tu trabajo) también pueden encontrarlo útil e incluso pueden ayudarte a mejorarlo. Cuando se trabaja para una empresa que no está activa en el espacio del código abierto, ¿cómo se abordan las conversaciones sobre los beneficios del trabajo de código abierto realizado en el trabajo?
Esta pregunta me ha hecho ver que es importante estar en la misma página que tu cliente. Como autónomos, podemos rechazar específicamente los proyectos que no cumplen con nuestros estándares (por ejemplo, no estoy seguro de que el trabajo por encargo vaya a funcionar para mí). Además, por lo general parece mejor conservar los derechos del trabajo creado en el trabajo en el caso de que quieras contribuir a la comunidad de código abierto. Como autónomos, es posible que tengamos que aceptar un trabajo en régimen de trabajo por cuenta ajena (por obligación fiscal) o que nos hayamos lanzado a un contrato sin entenderlo de antemano.