¿Libre para ser libre?
Cada vez es mayor la zona de solapamiento entre el código abierto y el software propietario, según Indaws, que analiza para Atlas el estado de situación del debate y concluye que no siempre es necesario escoger entre uno y otro, aunque el primero está ganando terreno
“El pájaro está atado
en profunda tristeza y dolor
luego vuela de su jaula…”
Un poco de Historia; en los años 80 empezamos a ver los primeros proyectos comerciales de software que usaban sistemas de licencia individuales sin revelar el código del software. Aparece el software propietario o privativo que sólo puede ser legalmente modificado o copiado por los autores originales, manteniendo éstos el control total.
Por otro lado, muchos desarrolladores siguieron con su filosofía de código abierto,“The open source way”, que considera que los proyectos deben ser creados con un espíritu de participación colaborativa, intercambio de ideas, transparencia, cambios rápidos, meritocracia y soporte de la comunidad.
Desde entonces se producen acalorados debates entre ambas filosofías. Sin entrar en matices, pese a los defensores acérrimos de uno u otro sistema, es difícil decidir que un modelo es mejor que otro. ¿Es mejor el software libre o el propietario? La respuesta a dicha pregunta sería “Depende”. Intentaremos debatir pros y contras de uno y otro modelo para poder decidir qué filosofía beneficia más a nuestro tipo de empresa u organización.
A modo de puntualización, deberíamos tener en cuenta que en la actualidad, muchos sistemas de software no son puramente abiertos ni puramente cerrados. La idea de que las soluciones de software patentadas y de código abierto son diametralmente opuestas ya no es totalmente cierta, y las fronteras cada vez están más difuminadas. Existen proveedores de software propietario que posteriormente lanzan como código abierto así como existen proveedores de software abierto que tienen versiones con ánimo de lucro y licencias sobre una plataforma de código abierto.
Podemos hablar de un espíritu de código abierto en una solución o cerrado, y esto marcará la filosofía y el desarrollo futuro del software, y en este sentido, podemos debatir pros y contras de ambas filosofías.
Hay dos tipos de software abierto:
• Código abierto desarrollado y administrado por una comunidad de desarrolladores que mejoran y respaldan de manera cooperativa el código fuente sin remuneración. En este caso los proyectos más grandes suelen estar a cargo de fundaciones sin ánimo de lucro. Ejemplos bien conocidos de proyectos de este tipo son Linux y Apache Web Server.
• El software comercial de código abierto, o COSS, que se distingue por ser software de código abierto cuyos derechos de autor, patentes y marcas registradas están controlados por una sola entidad. El propietario solo acepta contribuciones de código si el colaborador transfiere los derechos de autor del código a esta entidad. Pueden distribuir su software de forma gratuita o mediante una tarifa. Su modelo comercial generalmente incluye ingresos por brindar soporte técnico y servicios de consultoría. En términos de ingresos por licencias, Red Hat sigue siendo la empresa COSS más grande, pero Facebook es el mayor contribuyente de códigos COSS. Soluciones empresariales de mucho éxito como Odoo adoptan este sistema.
PROS del Código abierto
· Prueba gratuita antes de comprar: El código abierto es completamente gratuito para que cualquiera lo descargue, incluido el código fuente, para su evaluación. Incluso los proveedores de COSS suelen tener una versión gratuita de sus paquetes de software, que incluye el código fuente.
· Los softwares de código abierto suelen tener una comunidad global de usuarios y desarrolladores disponibles para hacer preguntas y pedir consejo. El soporte incluye documentación detallada, foros, wikis, grupos de noticias, listas de correo electrónico y chats en vivo. Un software de código abierto lo puedes aprender sin ninguna inversión además de tiempo.
· Estándares abiertos. Las comunidades de código abierto desconfían de los estándares propietarios, prefiriendo en cambio adherirse a los estándares abiertos sobre protocolos de comunicación y formatos de datos. Este aspecto mejora significativamente la interoperabilidad dentro y entre el software de código abierto y propietario, incluidos los sistemas operativos, lo que a su vez significa un alto nivel de interoperabilidad para las aplicaciones comerciales y de los clientes.
· Menos errores y soluciones más rápidas. Debido a que los grandes proyectos de software de código abierto pueden tener literalmente millones de ojos examinando el código fuente, existe una probabilidad mucho mayor de que se expongan y se solucionen más errores en comparación con el código de un proveedor propietario que cuenta con un personal de desarrollo mucho más pequeño. Además, dado que el código fuente viene con el software, los clientes pueden aplicar sus propios parches a voluntad.
· Mejor seguridad. Un efecto secundario del punto anterior es que el software de código abierto es más seguro en general. La seguridad de los proveedores de software propietario depende en cierta medida de que su código fuente sea opaco, y por tanto no se examina en tanta profundidad que los errores de seguridad no estén presentes en su software. Es más probable que los agujeros de seguridad simplemente no se hayan encontrado todavía.
· Evita el bloqueo del proveedor. Excepto en el caso de COSS, existe una dependencia mínima de un solo proveedor o grupo para las mejoras, mantenimiento y soporte. Además, dado que la comunidad de código abierto está distribuida y es diversa, hay poco riesgo de terminar teniendo un software huérfano, que sería el caso si el proveedor propietario retirara o abandonara su proyecto.
CONTRAS del código abierto
· Ventaja competitiva reducida. Si tu empresa basa su ventaja competitiva en su software, el código abierto lo hace mucho más replicable y por tanto tu ventaja competitiva sería menos robusta.
· Los grandes proyectos de código abierto cuentan con una vasta comunidad de apoyo que proporciona documentación, herramientas y sistemas de soporte para respaldar a los usuarios del software. Sin embargo, el soporte gratuito no siempre es el soporte más rápido, especialmente si la empresa está buscando una solución a un problema espinoso resultante de errores de código aparentemente aleatorios, fallos de diseño o dificultades de integración. Las empresas más grandes con la capacidad de pagar por paquetes de soporte de primer nivel suelen esperar una atención rápida y detallada que rara vez está disponible en las comunidades de código abierto.
· Usabilidad. Los proyectos de código abierto, incluso COSS, son paquetes complejos de software que no están tan estrechamente dirigidos a los mercados de usuarios finales no calificados como gran parte del software propietario. Normalmente es necesario un partner tecnológico para implementarlos.
PROS del software propietario
· Estabilidad del producto Los proveedores de software patentados deben, si quieren sobrevivir, mantener un estricto control de la hoja de ruta de sus productos. Sus productos están diseñados desde el principio para fomentar un futuro largo y próspero con muchas actualizaciones previo pago a lo largo del tiempo. En general exhibe una estabilidad superior a la del software de código abierto, aunque existe el riesgo de que si no sigues pagando actualizaciones tu software quede rápidamente obsoleto.
· Soporte personalizado. Dado que el alcance de su software suele ser más limitado que el de los proyectos de código abierto, la capacitación y el soporte postventa es más completo, accesible y conciso. Existe una gran diferencia entre formular preguntas en un foro de código abierto y recibir soporte directamente de representantes técnicos o consultores de una empresa de software propietario, especialmente en el momento de la integración.
CONTRAS del software propietario
· Dependencia Los clientes de las empresas de software de código cerrado están completamente expuestos a las decisiones de su proveedor de software. Tienen una influencia mínima, a menos que sean su cliente número uno, para influir en las prioridades, los plazos y la estructura de precios del proveedor. Además, es probable que cambiar de proveedor una vez que su software se haya incorporado a su empresa sea prohibitivamente costoso.
· Poca Flexibilidad. Por definición, las partes internas del software de código cerrado están cerradas a la vista. Los usuarios de este software no pueden modificar el código y mucho menos depurarlo de forma eficaz. Esta opacidad también significa que suele ser más difícil para los clientes realizar personalizaciones u optimizaciones en su producto final.
· Coste de licencias. Normalmente el software propietario suele tener un coste de licencias y de adquisición elevado.
Como podemos ver en la tabla siguiente, suelen existir programas exitosos por categoría siguiendo ambas filosofías. Aquí tenéis una comparativa de las soluciones líderes en diferentes segmentos.
Muchas empresas tienen éxito con cualquiera de los enfoques y muchas utilizan ambos enfoques simultáneamente. No podemos concluir que ninguna de las opciones sea la mejor para todos los casos, aunque actualmente el código abierto está ganando terreno sobre las soluciones patentadas en muchas áreas. Las ventajas del código abierto cada vez son mayores y las desventajas desaparecen gracias a empresas especializadas en dichos softwares que ofrecen consultoría y soporte. La mayoría de las empresas están bastante familiarizadas con el software de código cerrado, sin embargo, los nuevos usuarios de las soluciones de código abierto deberían asesorarse por un partner tecnológico de prestigio para potenciar las fortalezas del código abierto y apuntalar las posibles debilidades.
Víctor Peris es socio de Indaws