¿Qué es el código abierto? ¿Existe alguna diferencia con el software libre? Y, ¿podemos confiar en algo “abierto” para respaldar servicios públicos? En nuestras experiencias impulsando la iniciativa Código para el Desarrollo del BID, hemos escuchado estas preguntas y otras parecidas. La naturaleza dinámica y colaborativa dentro del ecosistema tecnológico a veces contribuye a la confusión.
Es por eso que buscamos aclarar las preguntas más frecuentes sobre el código abierto, a su vez alumbrando las muchas oportunidades de impacto que este movimiento puede brindar al público.
Primero, ¿Cuál es la diferencia entre software libre y código abierto? ¿Son lo mismo?
No son lo mismo. Existe mucho debate sobre este tema, tanto que se puede convertir en una conversación filosófica. Si bien el código abierto se bifurcó del software libre, ambos concuerdan en la apertura del código fuente de software y el trabajo colaborativo para resolver problemas y mejorar o adaptar el código fuente de un software. Podemos conocer las diferencias sutiles entre el software libre y el código abierto según los criterios definidos por las organizaciones a cargo.
“Software libre” es definido por la Free Software Foundation (FSF), a través de sus cuatro libertades esenciales. Algunos caracterizan estas libertades como un manifiesto ético para preservar los derechos del usuario sobre cualquier otro interés. Esta Fundación tiene una lista de licencias que se consideran de software libre.
En cambio, el concepto de “código abierto” es definido por 10 criterios de la Open Source Initiative (OSI). Estos incorporan ciertos ajustes a las normas de Software Libre que permite la adaptación a las prácticas del mundo comercial y así facilita su proliferación. La OSI también proporciona una lista de licencias que se consideran aptas a los criterios de código abierto.
¿Cómo un software llega a ser de código abierto?
Abrir el código significa tener el código fuente de la herramienta digital de forma pública. Lo más común es publicar el código en alguna plataforma colaborativa especializada en la gestión de software, lo que llaman también repositorios de código. Algunos de los más conocidos incluyen GitHub, GitLab, BitBucket, y Sourceforge, entre otros. En el BID utilizamos GitHub para compartir el código abierto desarrollado en nuestros proyectos.
El uso de estas plataformas se beneficia de ciertas buenas prácticas para promover que el código sea accesible y reutilizable, acompañado por su documentación de soporte y una licencia adecuada. Hemos creado una guía de buenas prácticas para la publicación abierta de software que puedes acceder.
¿No es peligroso tener el código expuesto?
La seguridad de tu software es muy importante. Sin embargo, en la mayoría de los casos, no debe ser una limitante para abrir el código. También es importante darse cuenta de que tener el código cerrado no sustancia una medida de seguridad robusta y completa para guardar información sensible.
El Reino Unido, por ejemplo, ha definido en su manual de servicios digitales (en inglés) algunas guías muy claras para decidir entre cuándo se debe mantener el código abierto o cerrado. Según esta guía, los únicos casos en los que el código debe mantenerse cerrado son los siguientes:
- Claves y credenciales dentro del código
- Algoritmos utilizados para detectar fraudes
- Política inédita o en proceso de publicación oficial
La guía ofrece algunas consideraciones de seguridad adicionales (inglés) cuando uno está trabajando con código abierto.
Entonces ¿los gobiernos están promoviendo el código abierto?
Sí. La creación y uso de software de código abierto es una tendencia en los gobiernos, por el impacto real que está generando. El equipo de Datos en el Ministerio de Modernización de Argentina, ha compartido algunos ejemplos concretos sobre por qué es importante para ellos trabajar con el código abierto. Además, se ve una comunidad muy amplia en GitHub y otras plataformas colaborativas donde entidades públicas de muchos niveles alrededor del mundo han compartido su código.
En América Latina, existe una participación amplia en la Red Gealc, la cual promueve el desarrollo de software público, software en código abierto creado para y por los gobiernos.
Estos son ejemplos de gobiernos que están indexando el código abierto de sus soluciones digitales:
- Paraguay
- Perú
- Uruguay
- Unión Europea
¿Mantener el código abierto es costoso?
Primero, es importante entender que mantener el código abierto no es lo mismo que darle soporte y mantenimiento.
Para mantener el código abierto, los repositorios de GitHub y la mayoría de las plataformas colaborativas de código son gratis, siempre y cuando el repositorio que utilices sea público. Si quisieras tener repositorios privados sí tendrás que pagar por ellos.
Una vez que el código ya está público en una plataforma colaborativa se debe comenzar a pensar en su ciclo de vida, es decir, darle soporte y mantenimiento. La evolución de un software dependerá de muchos factores, como la colaboración externa que puede recibir una vez público y el manejo de versiones según se le vayan agregando funcionalidades. A manera de ejemplo, el equipo de Gobierto ha creado un modelo sostenible, abierto, y modular. Es recomendable tener un equipo o una persona que se encargue o lidere la gestión del soporte, de preferencia el equipo o la persona que desarrolló la solución.
Una forma útil de conseguir que otras personas aporten en el mantenimiento de tu software es mejorando la documentación del mismo. Puedes revisar nuestra guía de publicación en la sección de documentación.
¿Debo pedirle a mi proveedor tecnológico abrir el código?
Sí. Debes pedirle el código fuente a tu proveedor, solo exceptuando los casos en los que en el desarrollo se han usado herramientas con licencias propietarias que impidan su distribución.
Es posible desarrollar un software de buena calidad y con valor comercial utilizando el código abierto. Esto funciona cuando el modelo de negocio se base en el servicio en de solamente el producto, aprovechando la flexibilidad que pueden ofrecer las tecnologías de código abierto.
En conclusión
Es nuestra visión desde Código para el Desarrollo que la reutilización de código abierto presenta oportunidades muy potentes para la transformación digital en la región. Es importante recordar que cuando creas nuevo código abierto, otros desarrolladores (incluidos aquellos fuera de tu organización) puedan:
- beneficiarse de tu trabajo y construir sobre él
- aprender de tus experiencias, y
- encontrar usos para tu código que no has encontrado.
¿Tienes más preguntas sobre el código abierto? Escríbenos en los comentarios.
Por Jesenia Rodríguez Paredes del Departamento de Conocimiento, Innovación y Comunicación del BID
Leave a Reply