¿Puedo usar la licencia MIT para entregar parte de mi código escrito anterior al empleador para protegerme y no perder mis derechos de autor?

17

Mi situación:

  • He escrito un marco antes de comenzar mi nuevo trabajo. Soy dueño de los derechos de autor.

  • Tiene un montón de lógica repetitiva dentro, como cualquier pieza de software. (duh!)

  • No quiero usar todo el marco en mi nuevo trabajo, pero necesito reutilizar algunas partes en un marco similar que estoy construyendo para mi nuevo trabajo.

  • No es práctico volver a implementar / repensar toda la lógica desde cero. Es mucha lógica y la lógica es lógica, no se puede hacer que sea muy diferente. Por ejemplo, ¿cuántas versiones diferentes de un HashMap puedes codificar? Apuesto a que serán muy similares y la tercera versión puede afirmar que usted violó los derechos de autor de la primera versión. :(

  • No es práctico intentar reinventar la API. ¿Puedes reinventar la API de un HashMap? Tal vez se puede cambiar put(k,v)a add(k,v), pero no mucho más que eso.

Mi idea de protegerme a mí mismo y a mi código anterior:

Le diré a mi empleador que estoy construyendo el nuevo marco basado en uno anterior que he escrito bajo la licencia MIT. Entonces, en el futuro, si uso mi marco anterior en otro lugar, o incluso en otra versión derivada del mismo , que tenga algunas piezas de código similares a este nuevo marco que estoy construyendo ahora para el empleador, no podrán decir que soy usando su código, el que escribí para ellos.

Mis preguntas:

  • No estoy distribuyendo mi código a nadie. No tengo que distribuir mi código de licencia MIT a nadie, si poseo los derechos de autor, ¿correcto? Quiero decir, ¿alguien puede solicitar que libere mi código que ahora afirmo que está bajo licencia MIT? No sería el fin del mundo y ciertamente estaría de acuerdo en hacerlo bajo una amenaza legal.

  • ¿Tiene sentido esta estrategia? Mi objetivo final es poder usar una versión derivada de mi marco codificado anterior sin perder los derechos de autor. Al mismo tiempo, no quiero distribuir este código como proyecto de código abierto a nadie. Tengo otros proyectos de código abierto, que distribuyo libremente, pero este me gustaría guardarlo para mí para poder usarlo en mis trabajos (no en trabajos de contratistas).

Es como afirmar que tiene un marco bajo la licencia MIT, sin distribuirlo y / o mostrarlo a nadie . Si está disponible, gratis y fácilmente disponible, mis empleadores ya no me necesitan. Simplemente pueden tomar el código y dárselo a otra persona para que lo use.

Notas:

  • He enumerado este marco como una invención anterior antes de comenzar el trabajo.

  • No he publicado este código en ningún lado. Está en mi repositorio SVN privado que alojo en mi servidor privado.

Mi idea en pocas palabras:

  • Mi plan es mantener el código anterior para mí mismo, usar partes de él en este nuevo marco que estoy construyendo para el empleador y decirle al empleador que es un trabajo derivado de un marco con licencia MIT que he codificado antes y que no he distribuido a nadie ". No me veo obligado a distribuir un software que codifiqué bajo la licencia MIT, ¿o sí? Si luego ocurre algún reclamo legal (espero que no), puedo pegar inmediatamente la licencia en todas las fuentes y mostrar / liberar el código.
JohnPristine
fuente

Respuestas:

21

Solía ​​ser un abogado de propiedad intelectual, así que tengo experiencia con licencia-ese. Siento que los términos en sí mismos son bastante legibles y comprensibles, pero una vez más, tengo tres años de escuela de leyes y algo de tiempo de abogacía antes de recuperar mi ingenio y volver a piratear. Particularmente dado que actualmente no soy un abogado activo, esto ciertamente no pretende ser un consejo legal en lo más mínimo.

Comencemos con el lenguaje de licencia MIT en sí. Luego expondré algunos puntos clave para comprender las licencias de código abierto, luego abordaré sus preguntas y proporcionaré cualquier observación de alto nivel.

Por la presente, se otorga permiso, sin cargo, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para negociar en el Software sin restricciones, incluidos, entre otros, los derechos de uso, copia, modificación, fusión , publicar, distribuir, sublicenciar y / o vender copias del Software, y permitir que las personas a quienes se les proporcione el Software lo hagan, sujeto a las siguientes condiciones: (que dejen este aviso en él. El final).

Algunas cosas clave con la mayoría de las licencias de código abierto (incluidos BSD, MIT, GPL) para los propietarios de derechos de autor son:

  1. La licencia no altera su propiedad de los derechos de autor en sí. Es una licencia no exclusiva, no una cesión o pérdida de propiedad. Usar una licencia de sistema operativo no es "poner algo en el dominio público", aunque ese es ciertamente un enfoque de código abierto.
  2. Nada lo "obliga" a usted, el propietario de los derechos de autor, a hacer público el código de ninguna manera solo porque le adjunte una licencia.
  3. Pero si usa una licencia de sistema operativo, no puede evitar que cualquier persona que "obtenga" su código con licencia del sistema operativo lo haga público de cualquier manera, lo cual está explícitamente dentro de sus derechos bajo todas estas licencias.
  4. Las licencias de Copyleft (p. Ej., GPL) requieren que los adquirentes (pero no los propietarios) hagan que sus trabajos derivados sean públicos y de código abierto. Permisivo (MIT, BSD) no. (Esto puede ser una pequeña simplificación, pero es la diferencia esencial)
  5. No existe una cláusula de "devolución" para la mayoría de las licencias de código abierto (p. Ej., MIT), por lo que una vez que alguien ha "obtenido" su código, tiene derecho a usarlo perpetuamente, según los términos de la licencia según los cuales lo recibió.
  6. Siempre puede distribuir versiones futuras de su código bajo una licencia diferente, o mantenerlas completamente propietarias. Eso no impide que alguien comience con su versión anterior de código abierto (suponiendo que la "obtuvieron") y agregue sus propias partes nuevas y la distribuya.
  7. Puede eliminar un canal de "obtención" para versiones anteriores de su código, por ejemplo, quítelo de github. Sin embargo, como se mencionó, eso no impide que otros usen o distribuyan cualquier versión anterior que haya abierto de ninguna manera.

Con esa base, pasaré a sus preguntas.

No estoy distribuyendo mi código a nadie. No tengo que distribuir mi código de licencia MIT a nadie, si poseo los derechos de autor, ¿correcto? Quiero decir, ¿alguien puede solicitar que libere mi código que ahora afirmo que está bajo licencia MIT? No sería el fin del mundo y ciertamente estaría de acuerdo en hacerlo bajo una amenaza legal. ... Al mismo tiempo, no quiero distribuir este código como proyecto de código abierto a nadie.

Como titular de los derechos de autor, no tiene que distribuir ningún código a nadie; no tendría que cumplir con tales solicitudes (incluso si fuera GPL). Usted retiene todos los derechos. Sin embargo, en la situación que describa, estaría distribuyendo a su nueva empresa y otorgándoles licencias perpetuamente bajo una licencia de sistema operativo. Su empleador (probablemente el ex empleador) podría pegar su código en Internet, y usted no podría hacer nada al respecto además de quejarse.

Supongo que te refieres a "alguien además de mi empleador" Si no quiere entregárselo a su empleador "como código abierto" y otorgarle todos los derechos que se incluyen en esa licencia, incluida la redistribución y el uso perpetuo de la forma que desee, entonces no debe usar un licencia de código abierto. Simplemente debe licenciarlo directamente a ellos en los términos que desee. Bullet señale lo que quiere y pídale a un abogado que le facture una o dos horas para ponerlos en forma de párrafo. O escríbelo tú mismo. Las licencias son solo contratos que son solo acuerdos expresados ​​en palabras.

Mi objetivo final es poder usar una versión derivada de mi marco codificado anterior sin perder los derechos de autor.

No puede perder el derecho de autor a menos que lo asigne a alguien, lo licencia exclusivamente (incluso excluyéndose a usted mismo) o lo pierde. La licencia de código abierto no es ninguno de estos. Siempre podrá usar las versiones derivadas que cree, e incluso puede licenciar las derivaciones de manera diferente o conservar todos los derechos.

Pero, una preocupación principal y legítima suya parece ser que puede continuar reteniendo los derechos de autor y usar su código en el futuro sin que el empleador reclame el código como suyo o que esté fuera de sus derechos para hacerlo. La clave para esto es crear una evidencia irrefutable de que A) conserva los derechos de autor de su trabajo anterior y se los proporciona bajo los términos de la licencia X (MIT funciona, si está de acuerdo con el aspecto de código abierto descrito anteriormente. ) B) están de acuerdo con estos términos, y C) qué fue exactamente el trabajo anterior.

Para (A) y (B) puede hacer que firmen o acepten por escrito algo que haga referencia o incluya la licencia y que entiendan que está trayendo el código a la tabla bajo esos términos. En cuanto a (C), no estoy seguro de cuál sería la forma estándar de hacerlo, pero sea lógico. Si no es terriblemente masivo, simplemente puede imprimir el código e incluirlo en el anexo en copias del acuerdo que tanto usted como su empleador firman. Guarde su copia, con su firma en ella. Si es demasiado grande para imprimir prácticamente, parece que un hash md5 sería útil aquí. Tal vez podría referirse a él como algo así como "el archivo zip llamado X en el repositorio privado de github /, (o sitio ftp, etc.), que tiene un hash md5 de XXXXXX ... y se envió por correo electrónico a la empresa Y en representación de Z fecha". Luego, puede enviarlo por correo electrónico a su gerente o su abogado o a quien sea de su cuenta de correo electrónico personal e incluso si eliminan su copia, aún conserva la suya y no pueden argumentar que pronosticó el futuro hash de código md5 que aún no está escrito . Eso teóricamente les impediría reclamar cualquier otra cosa en el futuro.

Ben Roberts
fuente
Eso es asombroso, Ben. Gracias por tu ayuda. Ya estoy empleado, por lo que me pregunto si sería suficiente un correo electrónico a mi gerente indicando la situación y los términos de la licencia que les envié. Luego incluiría la licencia (Copyright (c) MI NOMBRE - Licencia otorgada a la EMPRESA bla, bla, bla) en cada código fuente que traigo. ¿Qué opinas?
JohnPristine
Los correos electrónicos ciertamente pueden ser evidencia de un acuerdo o acuerdo, por ejemplo, un contrato. Si propone traer el código a la mesa bajo ciertos términos y una persona con autoridad en la compañía está de acuerdo, parece que crearía un contrato lo suficientemente bien. Creo que su idea sobre los términos (C) / licencia en cada archivo también es buena. La pregunta es si conservará (C) las mejoras en los archivos o no. De lo contrario, es posible que desee hacer un registro de las versiones originales de los archivos para los que conserva la suela (C), por ejemplo, con un archivo zip y md5 hash enviado a su administrador.
Ben Roberts
Impresionante respuesta, gracias. Muy bien detallado y formulado.
haylem
6

(Yo no soy un abogado.)

Veo algunos problemas potenciales con esto:

  • Si lo peor llega a ser peor, tendrá que demostrar que escribió este código antes de comenzar a trabajar allí, y que cuando lo usó en su proyecto en el trabajo, su empleador sabía que estaba bajo sus derechos de autor y bajo la licencia MIT . Como el objetivo principal de esto es retener sus derechos de autor, no establecer términos de redistribución, un contrato escrito con su empleador sobre el uso de su código previamente escrito parece una mejor idea.

  • Dices que quieres proteger tu copyright y la capacidad de construir "incluso otra versión derivada de él". Ahora es probable que mientras esté en su trabajo actual, tenga algunas buenas ideas y las implemente. Me parece que esto se volvería difícil cuando dejes tu trabajo y luego 'vuelvas a implementar' esas ideas para construir otra versión de tu biblioteca, ya que no puedes hacer lo que quieras con el código que escribiste en tu trabajo (y hasta cierto punto, las ideas detrás de esto).

us2012
fuente
1) Planeo hacer esto con un archivo de licencia junto con el código de la compañía, indicando que se basa en el trabajo derivado con la licencia MIT. Para probar que fue escrito antes de planear contar con mi declaración de invención anterior. 2) Las ideas no tienen derechos de autor, creo, a menos que haya una patente. El código tiene derechos de autor. El desafío es cómo volver a escribir / re-implementar / reutilizar la idea sin romper los derechos de autor del código original que implementó.
JohnPristine
2
Es cierto que las ideas no tienen derechos de autor, pero pueden considerarse "secretos comerciales" o "know-how" o (si es patentable) "ideas patentables" u otro tipo de "propiedad intelectual" que probablemente haya aceptado que posee la empresa. Es una especie de área desordenada.
Ben Roberts
4

No soy abogado, pero esta sería mi solución:

  1. Libere el código bajo la licencia GNU GPL v3 en un repositorio público, donde todos puedan verlo.

  2. La licencia GPL no permite que otras personas tomen su código y lo pongan en su software comercial patentado y cierren el código.

  3. Si el código fue 100% creado por usted y no contiene trabajo de otros o trabajo derivado, entonces la GPL le permite licenciar su código también bajo otra licencia, en cuyo caso se le permite usarlo en sus trabajos para fines comerciales código. Sin embargo, debe hacer que su empleador sea un licenciatario de esta licencia de propiedad alternativa.

  4. Esta solución probaría que escribió su código ANTES de tomar el trabajo.

  5. Puede anunciar que su código está disponible bajo una licencia de propiedad para la venta (por dinero) y luego las partes interesadas pueden contactarlo para comprarlo.

ruben2020
fuente
No me gustaría hacer 1 o liberar el código en un repositorio público. Entiendo que es la forma más fácil de probar que el código fue escrito antes. Creo que a los profesionales del software les falta este tipo de licencia, una que les permite usar su código para un trabajo sin hacerlo de código abierto y sin perderlo. Si vuelve a hacer todo, los códigos serán similares, no hay escapatoria de eso. Y un diseño de sala limpia no es práctico para un empleado.
JohnPristine
Pero su solución le permite a su empleador publicar su código fuente en un repositorio público. Creo que usar una licencia de código abierto cuando no quieres que sea de código abierto no es aconsejable.
markijbema
2

¿Hay alguna razón específica por la que no puede preguntarle a su empleador si es posible que conserve los derechos de autor sobre el código general que escribe para su marco (lo que a su vez les da un código gratuito en este momento) y les da todo lo que puede hacer? -you-want-with-it (de acuerdo, esto es bastante parecido al MIT).

Sin embargo, si licencia su código MIT actual, no hay ninguna razón por la cual su empleador deba abrir su versión modificada (modificada por usted), por lo que diría que no resuelve mucho. Incluso LGPL no resolvería esto, siempre y cuando el código no esté 'distribuido'.

En general, su acuerdo no parece irrazonable: tiene un código marco y está dispuesto a donarlos a la empresa, siempre que pueda conservar el código y reutilizarlo para otros proyectos más adelante, entonces ¿por qué? ¿no preguntar?

markijbema
fuente
¡Si! Ese es siempre el mejor enfoque que debo aceptar. Solo sé valiente y pregunta. Si piensan que eres raro por preguntar eso, entonces comienza a buscar otro trabajo. Tan sencillo como eso. La vida se trata de honestidad y riesgos. :)
JohnPristine
2

IANAL, pregunte a un abogado real, etc.

En primer lugar, creo que crees que cuando tienes derechos de autor, solo puedes licenciarte el producto bajo los mismos términos que lo autorizas a todos los demás. Esto está mal: puede otorgarle una licencia a usted en cualquier licencia adecuada y otorgarla a otra persona con una licencia diferente.

Lo que significa que puede crear una licencia especial para la compañía que está a punto de contratarlo, y poner el software a su disposición como un acuerdo por separado. Por supuesto, esto debería hacerlo un verdadero abogado.

Haga que su empresa firme la licencia por separado, que establece explícitamente que tiene derechos de autor y que les está otorgando ciertos derechos, no los derechos de autor.

En cuanto a la cuestión secundaria, hay otras formas de probar la fecha anterior, además del código abierto del proyecto. Por ejemplo, podría alojar en un servidor disponible públicamente un archivo, que dice que efectivamente escribió este software, en la fecha especificada, que contiene, por ejemplo, algunos hashes diferentes de la versión actual, o incluso la versión cifrada del proyecto.

Esto significa que si está bajo una amenaza legal, puede probar la fecha de uso anterior al juez, sin embargo, no revela prácticamente nada sobre el proyecto, además de que usted es el autor y la fecha en que lo reveló. Debe consultar a un abogado sobre la posible validez de tal argumento, pero creo que sería aceptado en la mayoría de los tribunales.

K.Steff
fuente