¿Las empresas tecnológicas tienen un proceso de aprobación de código abierto?

Ejecuto el proceso en Yahoo (y ocasionalmente chateo con las personas que ejecutan procesos similares en Facebook, Google, Twitter y otros lugares). No me gusta hacer que los desarrolladores salten a través de los aros, la mayoría de ellos eluden ese tipo de aros de todos modos. En cambio, proporciono un servicio de revisión. Verá: una vez que publique el código como código abierto, todos en el mundo podrán verlo. Simplemente insisto en verlo de antemano. ¿Por qué? Porque si hay un problema con el código, puedo arreglarlo o bloquearlo antes de que salga.

¿Qué tipo de problemas hay con el código fuente abierto? He visto muchos tipos diferentes, desde errores ligeramente vergonzosos hasta errores increíblemente costosos. Algunos problemas causan riesgos para la empresa, algunos para el empleado. Limpiarlos en público no es divertido. He estado haciendo este concierto durante un par de años y encuentro nuevos problemas todo el tiempo. Entonces, mi trabajo es hacer un proceso de revisión que sea tan simple e indoloro que los desarrolladores deseen solicitar mi revisión, ya que preferirían asegurarse de que alguien revisó su código una vez más antes que el resto del mundo.

¿Qué pasa si eluden el proceso? Asumen riesgos. Si siguen el proceso, reducen el riesgo. Por lo tanto, siempre que pueda acceder a su código rápidamente, no me ven dando saltos, les aseguro. Una buena parte de mi día lo paso ayudando a los grupos a publicar código (en proyectos Apache, OpenStack, revistas científicas, marcos de prueba, módulos NPM, código relacionado con la seguridad, código de aplicación móvil, código de almacenamiento, código de detección de anomalías, lo que sea). Apruebo la mayoría del código que reviso. En los casos en que no lo hago, explico por qué la publicación sería un problema (y generalmente recibo un agradecimiento de la persona que no se dio cuenta de que había un problema). A veces podemos solucionar el problema, a veces simplemente no vale la pena. Pero la mayoría de las veces la aprobación es bastante simple (generalmente sugeriré o insistiré en algunos cambios, y luego ayudaré a configurar el repositorio y los permisos). A veces es complicado y, a veces, alguien se enoja conmigo por retrasarlo o impedir que hagan lo que quieren. Hago todo lo posible para ser útil, y las personas pueden quejarse o enviar complementos a mi gerente.

Si una empresa de tecnología no tenía ningún proceso, y permitía que cualquiera publicara algo (como hacen algunas empresas), creo que asumen demasiado riesgo; especialmente una gran empresa tecnológica con bolsillos profundos. Simplemente están invitando a trolls de derechos de autor y partes legítimas para demandarlos, ya que les aseguro que si no tienen cuidado, harán cosas que infrinjan las licencias de código abierto y los derechos de autor. Si no permiten que nadie publique nada, probablemente nieguen que los desarrolladores publiquen código. Sin la orientación adecuada, probablemente lo estén haciendo mal. Entonces, un proceso de revisión simple es la forma más sensata de hacerlo. Sé que he ahorrado a Yahoo muchas más veces mi salario en costos potenciales relacionados con publicaciones de código abierto (y espero que lo recuerden cuando se trata de tiempo extra ;-).

¿Cómo se ve el proceso? Es un boleto de Jira (solía ser un boleto de Bugzilla) y le pedimos al solicitante que ingrese la información pertinente sobre el código (quién escribió el código, dónde puedo ver el código, cuál es su objetivo de publicación, ¿usamos este código? en producción, se prueba, documenta, revisa el código, ¿depende o utiliza otro código fuente de terceros? De ser así, ¿bajo qué licencias publicaremos una publicación de blog sobre esto? ¿Quién mantendrá el código? ¿Alguien más? que el solicitante se preocupa por este código? etc.). Recibo el boleto: yo o alguien de mi equipo virtual mira la información, el código, etc. Dependiendo de muchos detalles, podemos contactar al solicitante para obtener más información. Finalmente, cerramos el ticket y todos los que lo copiaron reciben un correo electrónico con los próximos pasos para la publicación.

Algunas compañías tienen un proceso de aprobación de código abierto, pero una cantidad considerable de compañías “tecnológicas” todavía están dejando su código abierto bajo gestión.

Por lo general, primero habría que aprobar que el componente resuelva el problema que debería. En segundo lugar, aquellos que ya han decidido implementar un proceso de aprobación de código abierto en su empresa, probablemente establecerían una política de licencias. ¿Qué licencias quiero aprobar y cuáles no? No todos los términos y condiciones de las licencias se ajustan a todas las políticas de la empresa. Las empresas deciden qué licencias quieren que sus desarrolladores usen en su software.

“La forma en que muchas empresas enfrentan el desafío anterior es creando uno aún más grande, lo que significa un proceso de revisión y aprobación largo y doloroso para cada componente que los desarrolladores desean integrar al código”.

a través de Superar estos 4 desafíos para maximizar los beneficios de código abierto

Las empresas que utilizan una herramienta de gestión y seguridad de código abierto pueden evitar que salte a través de los ganchos. Puede utilizar la Herramienta de selección para comprender si un componente es problemático para su empresa en una etapa muy temprana y, como mencionó Gil, ahorrar una gran cantidad de costos potenciales relacionados con el código abierto.

La licencia de código abierto de los componentes que se utilizan, y usted o su compañía planean publicar el widget, es un factor importante. No son aros. Se llama seguir la ley. Si no comprende los diferentes modelos de licencia y qué es legal y qué no, no lo haga. Sus empleadores pueden ser demandados y usted puede ser despedido. La mayoría de las veces, en mi experiencia, el rotundo sí y el rotundo no es el resultado de que la gente no comprende la implicación de las licencias. El primer “aro” correcto que deberían preguntar es “¿qué licencia?”

El proceso de aprobación en mi empresa ‘tecnológica’ es:

¿Funciona, resuelve problemas? … sí … ¿tiene una licencia BSD, GPL o similar de ‘uso’ y ‘requisitos’? … sí

Úsalo.

Si no está familiarizado con las licencias de estilo BSD o GPL, tal vez necesite investigar qué requieren de ‘código abierto’.

Otras compañías ‘tecnológicas’ pueden requerir una pandilla de abogados de alto precio para pasar años revisando las licencias …

O bien, un grupo de ignorantes capitalistas de riesgo que no pueden soportar un artículo del producto de una empresa que no tiene un gancho de IP enterrado en las entrañas de la cosa.

Yo diría cuatro aros:

  1. La primera revisión debe ser una revisión comercial. ¿La liberación de este software en código abierto perjudica o perjudica a la empresa?
  2. La segunda revisión debe ser una revisión de licencia.
  3. La tercera revisión debe ser una revisión de procedimiento. ¿Cómo será lanzado? ¿Vas a ponerlo allí y luego dejar que se pudra? ¿Tendrás que mantenerlo?
  4. La cuarta revisión debe ser una revisión técnica.

Depende de la empresa. En primer lugar, dígale al CEO y él dice “adelante” o “no”. En otro, era un gran comité y mucho papeleo.