La falsa creencia de que el software libre es gratis

Por Luis Ignacio Bacas
Developer de OpenSistemas

A estas alturas de la historia, creo que es totalmente innecesario defender el uso del Software libre o del software de código abierto en los proyectos y servicios que se ofrecen hoy en día, desde las miles de páginas web que se ejecutan en servidores Apache hasta los móviles de última generación con núcleo Linux, ya que en la gran mayoría de los casos permite reducir y repartir los costes de desarrollo y mantenimiento de dichos proyectos abaratando su coste total.

Detrás de cada producto o proyecto de Software Libre puede haber una o varias empresas apoyándolo o quizás ninguna y solo sea fruto del trabajo de uno o varios entusiastas. Viéndolo desde otro punto de vista, un mayor número de participación de gente y empresas involucradas en la creación y actualización de un producto, repercutirá positivamente en menores costes de desarrollo y mantenimiento para cada uno de ellos. Por este motivo, es muy importante valorar el volumen de gente y empresas que apoyan el proyecto a la hora de elegir si es conveniente para cubrir nuestras necesidades, ya que hay que tener en cuenta si seguirá cubriéndolas en un futuro, para no encontrarse con un producto que en su momento se adaptaba a nuestras necesidades pero que con el paso del tiempo se ha quedado obsoleto y ha dejado de hacerlo.

El problema es averiguar qué hacer para reducir estos costes, ya que rara vez un único producto se ajustará a nuestras necesidades y probablemente necesitemos varios que se complementen para ofrecernos la funcionalidad deseada. A veces serán productos totalmente independientes que tendremos que integrar, como ya comentó un compañero recientemente (A vueltas con la tecnología de integración), otras serán módulos o add-ons que habrá que agregar al producto base. Esto último sucede en los grandes proyectos que aportan el núcleo de la funcionalidad y que una miríada de módulos que lo complementan y especializan (Drupal, WordPress, Symfony, jQuery, …).

A día de hoy, si partimos con una serie de requisitos pero sin ninguna limitación impuesta por un producto existente, se nos plantean múltiples opciones para implementar una solución que satisfaga nuestras necesidades. La raíz del problema radica en saber cómo elegir, ya que una elección incorrecta puede traernos dolores de cabeza en un futuro, haciendo que un cambio de requisitos aparentemente trivial pueda tener un coste superior al esperado. Dicho de otra forma, un proyecto que hoy esté a la vanguardia tecnológica puede quedar obsoleto a medio plazo si no es mantenido y actualizado convenientemente, y en este punto pueden entran en juego costes de mantenimiento no esperados.

Este caso se nos ha presentado recientemente en el desarrollo y mantenimiento de una plataforma eLearning. En este caso concreto se quería mejorar la usabilidad y experiencia de usuario desde dispositivos móviles, ya que el editor de textos que se está usando actualmente no funciona correctamente en estos dispositivos. Y aquí nos encontramos con el problema, el editor lleva sin actualizarse prácticamente ¡desde 2009! por lo que no es tan sencillo como actualizarlo et voilà. Se tomo la decisión de reemplazarlo por otro con actualizaciones más periódicas, una gran comunidad de usuarios y desarrolladores a su alrededor, y una empresa que lo respalda. La problemática que nos encontramos fue que hubo que volver a crear plugins hechos a medida para el antiguo editor, modificar la parte del core encargada de gestionarlo y rehacer muchas páginas que añadían información específica a dichos plugins. Con lo que un cambio de un editor de texto, cuya funcionalidad no añade mejoras significativas, ha llevado asociado un coste en recursos y tiempo muy lejos del esperado inicialmente.

Resumiendo, los costes del uso del Software Libre no solo están localizados en el precio relativo a las licencias, sino en el proceso de integración, mantenimiento y personalización del mismo. Lo importante es tratar de minimizar estos costes mediante la elección de un producto teniendo en cuenta tanto la experiencia pasada, como las necesidades actuales y las posibles mejoras abordables en un futuro. Aunque cabe reseñar que estos mismos problemas y sus costes asociados, también los encontramos de forma frecuente en el software privativo.