El desarrollo de aplicaciones que utilizan componentes de código abierto proporciona los componentes básicos de la arquitectura para acelerar la transformación digital. Pero a medida que madura en la empresa, los líderes de TI deben comprender el cambio de mentalidad que va más allá del mantra “el código abierto es gratuito” y reconocer el papel que desempeña en las arquitecturas empresariales modernas y los acuerdos de nivel de servicio y soporte empresarial, que son muy importantes. diferente de los contratos tradicionales de software comercial. Esta diferencia puede chocar con los procesos de adquisición a los que están acostumbradas las organizaciones.
Andrew Davidson, vicepresidente senior de productos en la nube de MongoDB, cree que cualquier pieza de software crítico debe construirse sobre componentes de código abierto. “Le da a la gente libertad, flexibilidad”, dijo, “y las herramientas de código abierto son un poco más intuitivas”.
Sin embargo, el código fuente abierto sin procesar, extraído de repositorios públicos de código fuente como GitHub, tiende a venir “tal cual”, sin garantía. Desde una perspectiva de soporte, no hay obligaciones de ninguna de las partes, dijo Peter Zaitsev, director ejecutivo de Percona. “Las cosas suceden en base a relaciones de buena voluntad y negociaciones”, agregó. “Si desea alguna garantía (ayuda y soporte, corrección de errores, mantenimiento de versiones antiguas, etc.), todo esto viene con acuerdos comerciales con empresas o desarrolladores individuales”.
El primer concepto erróneo es la cuestión del “software libre”. Para muchos desarrolladores de software, su primera experiencia con una nueva herramienta o componente de código abierto es cuando incorporan el código dentro de un proyecto y lo prueban. Este modelo de “pruebe antes de comprar” permite a las empresas implementar aplicaciones de prueba de concepto. Debido a que no hay una tarifa de licencia comercial, las empresas pueden continuar ejecutando la versión gratuita en producción y ampliar la implementación.
Pero todo el soporte para el código abierto utilizado debe administrarse internamente, donde los desarrolladores se acercan a la comunidad de código abierto más amplia para ayudarlos a resolver problemas particulares.
Shaun O’Meara, CTO de campo en Mirantis, dijo: “A veces, la gente se vuelve muy religiosa con respecto al software de fuente abierta. Estamos en el juego para ganar dinero”.
Según su experiencia, las organizaciones necesitan seleccionar un socio comercial para hacer el mejor uso del software de código abierto. Desde una perspectiva de Mirantis, dijo: “Ofrecemos indemnizaciones, garantías y manejamos la integración. Este es un acto de equilibrio entre ofrecer la opción que proviene del uso de código abierto con un servicio administrado y rieles de guía.
“Las empresas de código abierto construyen negocios en torno a la prestación de estos servicios de valor agregado además del código disponible gratuitamente. Algunos, como MongoDB, han ido más allá, comercializando el producto como SaaS [software as a service].”
Más allá de ofrecer un servicio de asistencia de código abierto, Davidson cree que las empresas de código abierto tienen un ADN fundamentalmente diferente en comparación con las empresas de software tradicionales. “En una empresa de software comercial, los clientes son responsables de que el software funcione”, dijo.
Cuando comenzó MongoDB, la empresa se convirtió en el soporte de nivel 3 para los clientes, brindando actualizaciones técnicas para el producto, dijo Davidson. Pero con su software Altas como plataforma de datos de código abierto de servicio, MongoDB es ahora la primera línea de soporte: nivel 1.
Aunque hay un gran número de empresas que comercializan código abierto con servicios administrados para la empresa, muchos componentes de código abierto ampliamente utilizados no se mantienen de esta manera. Los componentes como SSH se administran a través de comités o una federación de usuarios principales, que se unen para solucionar problemas rápidamente.
“Todos necesitamos componentes básicos estándar de código abierto, administrados por la federación de usuarios”, dijo Davidson. Cuando algo como Heartbleed explota una vulnerabilidad grave, “toda la industria trabaja sin parar para parchear el componente crítico”, dijo.
Así es como se arregló OpenSSH luego de las revelaciones del exploit Heartbleed. De manera similar, la comunidad se unió para parchear las vulnerabilidades del procesador Meltdown y Spectre.
Davidson describió la forma en que se desarrollan, mantienen y reparan estos componentes críticos como algo similar a andar en bicicleta. “Tienes tantos ojos puestos en algo”, dijo. “Pero si nadie está impulsando el desarrollo del componente, como cuando alguien deja de pedalear en una bicicleta, el proceso que mantiene el código abierto se derrumba”.
Impulsados por la tendencia de la digitalización, las habilidades de desarrollo de software tienen una gran demanda, y los desarrolladores recurren cada vez más a herramientas y componentes de código abierto como su método preferido para crear nuevas aplicaciones. Amanda Brock, directora ejecutiva de OpenUK, dijo que en lugar de intentar impedir que los desarrolladores de software usen código abierto, “entienda el mercado en el que se encuentra y dónde tiene sentido usar código fuente abierto”. Añadió: “Toda empresa necesita una política sobre el software de código abierto. No es un modelo de negocio. Hay un contrato que va con el software”.
Cuando las organizaciones estipulan el código abierto como parte de una solicitud de propuestas, Brock advirtió que el proceso de licitación puede terminar como un “ejercicio de casilla de verificación”. En este caso, la licitación ganadora puede ir a una empresa que dice que cumple con el modelo OSI para código abierto, pero puede carecer de la experiencia para respaldar un componente de código abierto de terceros a largo plazo.
El futuro del software es cada vez más de código abierto. Los desarrolladores de software recurren a herramientas y componentes de código abierto para ayudarlos a entregar software altamente funcional con mayor agilidad. El uso de código abierto significa que no tienen que reinventar la rueda y, en cambio, pueden concentrarse en escribir software innovador para el negocio.
A medida que se integran más componentes de código abierto en la TI empresarial, el equipo de liderazgo de TI deberá evaluar si el código fuente abierto gratuito es lo suficientemente bueno o si un servicio administrado o un producto SaaS de código abierto se ajusta a los requisitos del negocio. Cualquiera que sea la ruta que se tome, debe existir soporte para el componente, ya sea a través de la comunidad de código abierto o de un tercero, para cubrir la vida útil del producto basado en software que lo utiliza.