¿Cómo puedo reutilizar el código genérico para consultar entre compañías?

7

Estoy empleado a tiempo completo para la compañía X y la compañía Y me solicitó que hiciera servicios de consultoría para escribir C incrustada para ellos. Si bien conozco los conceptos básicos de conflictos de intereses y el gran no-no de compartir información patentada, conocimiento de la empresa y algoritmos patentados, tengo algunas preguntas con respecto a los artículos genéricos básicos que necesito reutilizar:

  • Arquitectura de software: tengo una preferencia personal de aplicación de capas, capa de abstracción y controladores de hardware. No quiero tener que hacer algo diferente y no es propiedad de la empresa. ¿Sería este un problema si se comparte?

  • Funciones genéricas: búsquedas en la tabla, funciones de seno / coseno, analizadores, etc. Escribí todo este código yo mismo. ¿Puedo copiar y pegar esto o tengo que volver a escribir, insertar espacios aleatorios, cambiar sangría, nombres de var, tamaños de tablas, etc.?

  • Nombre de funciones: uso una convención de nombres específica, por ejemplo, MATH_Sin (). Sin embargo, compilada en una DLL, la compañía X puede encontrar una función MATH_Sin () disponible en la DLL de la compañía Y y asumir que copié su código. ¿Debo cambiar el nombre de todas las funciones para ocultar alguna similitud?

  • El conocimiento público se convirtió en código fuente: digamos que encuentra un algoritmo en un papel que describe cómo buscar un patrón en una cadena y que convirtió el contenido en papel en el código fuente. De nuevo, ¿una copia y pegado sería un no-no aquí también? ¿Reescribe cambiando algunas cosas o desecha por completo y encuentra otra forma de hacerlo? Al final, es una implementación del conocimiento público.

Pregunté a mis compañeros y no puedo obtener una respuesta directa sobre qué hacer. El software es digital y muy rastreable y siempre se puede rastrear hasta el desarrollador.

Gracias.

Actualización : me he acercado a mi gerente y al departamento de recursos humanos y me han desanimado enérgicamente para que continúe con esto. Afirmaron que al usar el mismo conjunto de habilidades (programación integrada o programación en general) para otra empresa, siempre habrá la oportunidad de que la empresa X se desafíe a mí misma oa la compañía Y. Pregunté qué NO se consideraría un conflicto de intereses y Ellos respondieron "Podrías invertir en un restaurante ...". En serio?

La Compañía X es una corporación muy grande. No hay negociación entre el empleador y la empresa, no se acepta código de fuente abierta / código de licencia y parece que creen que me pertenecen a mí y a mi conjunto de habilidades. Si bien estoy de acuerdo con algunos de sus razonamientos, no estoy de acuerdo con que sean dueños de mi educación y, mientras estoy empleado para ellos, no puedo usar mis habilidades básicas para otros esfuerzos. Por lo tanto, he decidido seguir los consejos a continuación y abrir mi código personal que no pertenece a la compañía ni fue escrito usando el equipo o el tiempo de la compañía. No ganaré dinero ni firmaremos contratos, pero al menos puedo mantener mi código personal y continuar desarrollando mi carrera fuera de este entorno restrictivo.

Gracias por todas las respuestas. Espero que esto sirva de referencia para otros que persiguen el mismo objetivo.

    
pregunta PaulG 20.01.2012 - 05:03

2 respuestas

6

Si facturó el tiempo para desarrollar un código para una compañía en particular, entonces está atascado: ese código les pertenece y no puede llevárselo con usted.

Si ha creado una biblioteca con su propio código en su propio tiempo, y desea poder reutilizarlo en diferentes proyectos para aumentar su eficiencia, una solución es liberar ese código bajo una licencia permisiva, que usted puede hacerlo simplemente escribiendo "Licencia: LGPL" o lo que sea en un comentario en el encabezado.

Podría pensar que esto perdería su ventaja competitiva, ya que otra persona podría simplemente tomar su código y comenzar a usarlo, pero

  1. Siempre serás el mejor capaz de hacer uso de tu propio código, y

  2. El hecho de que el código tenga licencia para uso gratuito no significa que tenga que publicarlo en su sitio web en algún lugar para que lo robe todo el mundo.

respondido por el Russell Zahniser 20.01.2012 - 05:38
4

Esto limita el asesoramiento legal y este sitio no es realmente una fuente definitiva si necesita información precisa. Al cambiar de trabajo hace un tiempo, esta misma pregunta apareció en mi cabeza e hice un poco de investigación, pero toma lo que digo con un poco de sal.

  1. Si es un empleado a tiempo completo, el código escrito en el horario de la compañía pertenece a esa compañía.

  2. Debe ser muy cuidadoso con el "desarrollo en su propio tiempo". Muchas compañías consideran que cualquier código escrito mientras están empleados por ellos también es de su propiedad. Hace un tiempo, Joel escribió una muy buena buena escritura acerca de esto tema exacto Plantea puntos positivos que, en algunos casos, las empresas incluyen en el contrato que el código cualquier que usted produce mientras trabaja con ellos es suyo. Después de todo somos asalariados y no tenemos horas fijas. Puede que sea un caso especial, pero para mí el tiempo más productivo es de 12 a 5 a.m. Entonces, ¿cómo demuestra lo que constituye el "tiempo de la empresa"?

  3. Al cambiar de un trabajo a otro, dejé una colección de código personal relativamente grande. Nunca consideré la posibilidad de tomar ninguno de esos códigos porque a) probablemente no es lo más ético del mundo yb) he leído suficientes historias para evitar cualquier cosa que involucre mi código de empleador anterior. Sin embargo, cuando comencé a trabajar en mi empresa actual, descubrí que durante los primeros 3-5 meses pasé reescribiendo mucho de lo que ya había escrito una vez. Se sentía raro porque, aunque no estaba mirando el código antiguo, lo sabía lo suficientemente bien como para poder duplicar fácilmente algo que se vería muy similar. Después de leer un montón, solo pude concluir que mientras la compañía X posee los derechos de autor, no son los dueños de tu cerebro. Usted es libre de escribir lo mismo tantas veces como quiera, siempre y cuando nunca se pueda probar físicamente que tenía el código de la compañía X delante de sus ojos mientras trabajaba para Y. A la luz de eso, aconsejaría no cambiarlo simplemente. espaciado en blanco y nombres de variables.

En mi caso, terminé escribiendo mucho de memoria pero, al mismo tiempo, ya que he trabajado con bibliotecas anteriores durante años, sabía dónde me faltaban o era una molestia trabajar con ellas. Así que cuando me cambié a la empresa Y, también me tomé el tiempo de reconstruir este código desde cero, pero con una experiencia adicional integrada.

No tengo muchas ganas de hacer esto con mi próximo trabajo, pero lo único en lo que puedo pensar es en el futuro antes de aceptar un contrato de trabajo, encontrar un puesto en la compañía cuya administración no esté completamente en contra del código abierto. . Creo que me inclinaría por las empresas, a las que no les importaría que las bibliotecas no relacionadas con la empresa se liberaran bajo la licencia MIT.

    
respondido por el DXM 21.01.2012 - 05:24

Lea otras preguntas en las etiquetas