El rol del software libre en la iniciativa privada
Desde hace algunos años, me he visto beneficiado del software libre directamente. De hecho, podría decir que el día de hoy mi experiencia laboral, las soluciones que diseño, los productos que ofrezco, no serían viables sin el software libre.
Más allá de hablar de las bondades del software libre, como ya existen un montón de sitios y blogs alrededor del mundo, me gustaría definir algunas distinciones claras de cómo el software libre está ayudando a empresas del mundo entero, de una manera práctica.
Bajo costo
Supongo que pongo este apartado al inicio, porque ha sido el apartado más importante de todos para tomar decisiones de negocios.
El bajo costo no significa que sea económico de obtener solamente. De hecho, en los últimos años, las empresas de software propietario han utilizado el término "costo total de la propiedad" de manera muy ambigua, ya que hacen referencia a una muy baja cantidad de especialistas que pueden estar capacitados para mantener sistemas y servidores de manera confiable. Además que el argumento de que existe una "poca base de soporte" también es ambiguo; es una mentira disfrazada.
La realidad es que el software libre no tiene "certificaciones" per sé, como es el caso del software propietario, donde cada ingeniero debe cursar diplomados excesivamente costosos, donde aunque existen evaluaciones de conocimientos, realmente el costo de los mismos no justifica la cantidad de conocimientos requeridos. Además, dichas certificaciones no aplican a una base más amplia de productos, y parece más un producto promocional (aunque necesario en algunos casos) que una verdadera propuesta educativa. Claro está, es mi opinión personalísima, aunque también es un punto de vista igual de parcial que el de "no existen especialistas para los productos de software libre".
También es importante hacer la distinción de "no requiere servicio" (cosa de verdad impensable e imposible), contra "requiere un bajo servicio" o "el servicio solamente puede ser brindado por un personal especializado". Cada uno de esos enunciados engloba una realidad muy distinta, una necesidad económica distinta y, sobre todo, una percepción distinta. El software libre puede ser analizado, estudiado y programado por cualquiera, a diferencia del software propietario que requerirá que el fabricante y sólo el fabricante pueda hacer modificaciones, sean menores o mayores, a su plataforma. Desarrollar una solución basada en software libre con herramientas preexistentes, como pueden ser conmutadores IP, firewalls por hardware+software, balanceadores de carga e inclusive servidores de almacenamiento de datos con alta redundancia, son solo unos pequeños ejemplos de cómo la iniciativa privada puede reducir costos sin necesidad de una solución a medida que podría tener un costo inicial de varios miles de dólares y un costo total de la propiedad un 500% a 700% más caro, porque requeriremos de más licencias, ingenieros con certificación y la esperanza de que los fabricantes ofrezcan las funcionalidades que requerimos para nuestro plan.
Flexibilidad
Ningún hombre es una isla, dice un dicho. También es verdad que ninguna empresa tiene las mismas necesidades.
Cuando desarrollamos soluciones sobre sistemas operativos cerrados, como son los casos de Mac OS X server o Windows Server, tendremos menos oportunidades de modificar código del sistema operativo para ajustarlo a nuestras necesidades. Aunque en Mac Server es más simple hacer modificaciones al software, y encontrar un entorno de desarrollo (para los que no estén familiarizados con diseño y programación de software, el entorno de desarrollo es encontrar las herramientas necesarias previamente cargadas con el sistema operativo), aun nos queda el tema del Kernel.
Cuando Apple lanzó Mac OS X para Intel, se liberó el kernel para que cualquiera pudiera modificarlo y hacerlo funcionar de acuerdo a sus necesidades. Sin embargo, cuando los hackers comenzaron a instalar el sistema operativo en PC's y no en hardware de Apple, la empresa decidió que nadie podría modificar el Kernel. Punto.
El software realmente libre, ofrece toda la libertad de poder modificar lo que necesitemos según lo que deseemos lograr. De hecho, gracias a esta libertad de modificar el código, es que se localizan y corrigen errores, agujeros de seguridad, y se han ampliado funcionalidades que, de otra forma, habrían sido imposibles, y solo a través de los "visionarios" fabricantes de software tendríamos acceso.
Con Linux o las diferentes versiones de BSD (Free y Net, por citar dos), se han logrado importantes avances en investigación, desarrollo de nuevas tecnologías, y seguramente muchos dispositivos electrónicos que tiene cualquier persona a su alrededor funcionan basados en estos sistemas operativos. Televisores, consolas de videojuegos, reproductores de medios y un sin fin de herramientas, sin olvidarnos de Internet, cuya cuota de instalación de Linux es muy densa. De hecho, de todos los servidores del mundo, en 2010 se estimaba que un 78% utilizaban algún "sabor" de Linux.
Calidad de código
Cuando un programa es desarrollado por un fabricante, generalmente hay un grupo de desarrollo que va de una persona (que podría ser talentosísima, como hay varios casos), hasta cientos de desarrolladores.
En el caso del software libre, generalmente se utiliza un modelo de desarrollo que se llama "el bazar". En "La catedral y el bazar" de Eric S. Raymond, escrito en 1997, se nos detalle la diferencia de pensamiento de dichos modelos de desarrollo.
Para resumir el ensayo, la Catedral, es un modelo que privilegía el modelo piramidal de la empresa, donde un grupo de desarrolladores conocen cierta parte del código y el "monje superior" será quien sepa los detalles del software en su totalidad, y será quien actúe a manera de semáforo para que se solucionen problemas de clase superior, como cuando una parte del código escrita por un monje en la parte baja de la pirámide causa conflictos con otro módulo del programa escrita por otro monje de su nivel. Hasta que no alcanza niveles superiores, los errores no se corrijen.
Mientras tanto, en el bazar todos tienen acceso a todo el código, y se deja a disposición de todos la versión de "revisión" para que puedan hacerse las modificaciones requeridas, siempre bajo los roles de responsabilidad que podrían servir como varios semáforos, que permitirían que un desarrollo se libere en menos tiempo y con mucha mayor calidad.
El ejemplo más claro de esto es que windows se libera cada cierto número de años, un tanto por vender más licencias de un sistema que pudo haber sido mejor con más revisiones, y otro tanto porque la innovación queda frenada y limitada a un grupo de diseñadores de software.
Extendibilidad
Mientras que modificar el código de un programa es importante, extenderlo es más importante todavía.
Cuando compramos un ERP -por citar el ejemplo más en boga en estos días-, si es de código cerrado, habremos pagado un costo por la licencia (o las licencias, si es que fuera modular), además que esos módulos ya vendrán diseñados. Además, para personalizarlo, tendremos que pagarle al fabricante por cada módulo desarrollado. Verdad a medias porque, en ciertos casos veremos que el costo inicial (y supuestamente total) de este software, incluirá cierto número de módulos a medida, o todos en los softwares más costosos.
Suponiendo el mismo caso en software libre, aun cuando paguemos a un "mantenedor oficial", como podría ser el caso de OpenBravo, no estaremos ni limitados a lo que nos ofrezca el mantenedor, ni mucho menos estaremos limitados a lo que un grupo de desarrolladores tenga como "mirada oficial". Al contrario de muchos casos, en el software libre se toma en cuenta a los desarrolladores independientes quienes, además de modificar, podrán ampliar el software a través de las "API" que el programa ofrece, con total documentación sin costo alguno.
Seguridad
Contrario a lo que podría pensarse, el hecho de tener muchos desarrolladores no es inseguro, sino todo lo contrario. Al contar con más desarrolladores, hay más gente interesada en hacer un producto seguro en todos los niveles. Esto viene de la mano con la calidad del programa, pero merece un apartado especial.
Suponiendo que un desarrollador "malicioso" desee integrar una "puerta trasera" al programa, al pasar las revisiones por los llamados "roles de autoridad", siempre se notará una actividad maliciosa por parte de los desarrolladores.
Además, los white-hat hackers (esos hackers que buscan fallos sólo con el fin de informar a los desarrolladores de sus fallas) casi siempre están en estrecha comunicación con los desarrolladores, para indicarles dónde, sin haber sucedido voluntariamente, los usuarios maliciosos de un programa podrían tener acceso a funcionalidades no permitidas, e inclusive robar información. Dentro de un "equipo de desarrollo", al saber una incidencia de este tipo, se trabaja en su completa solución y se liberan actualizaciones de seguridad de manera contínua, a veces de manera diaria, para evitar vulnerabilidades.
El mismo proceso en el software propietario podría tardar varias semanas, e incluso meses en tener una solución positiva, herencia de su modelo de desarrollo.
Ejemplos prácticos de software libre
En telefonía IP, Asterik es, sin duda alguna, el mejor software para desarrollar soluciones completas que van desde conmutadores IP, hasta la base fundamental de muchas empresas de telecomunicaciones que brindan servicios a millones de usuario en todo el mundo. El costo del software es cero, y existen modificacionesa a medida que cubren necesidades como casetas de teléfono, o renta del servicio telefónico a nivel internacional.
En ERP, OpenBravo ERP es el sistema más avanzado y con un futuro incuestionable. Este software puede abarcar una empresa pequeña con necesidades de empresas más grandes, hasta grandes multinacionales que deseen administrar el más mínimo recurso de su empresa en una sola interfaz.
Para mejorar las comunicaciones de una empresa con sus clientes, SugarCRM es el estándar de facto, aun contra soluciones propietarias a nivel mundial. AVIS, la empresa de renta de autos con presencia en casi todos los países, Coca-Cola en su segmento para empresas, General Motors Colombia y empresas de todo el mundo, han confiado sus procesos de relaciones con el cliente a este software.
LibreOffice, es un estándar de facto nacido de OpenOffice.org. Cuando Oracle adquirió a Sun, el grupo de desarrolladores principal de LibreOffice (quienes no eran parte de la plantilla de Sun), decidieron separarse del proyecto, y comenzar uno nuevo, aprovechando esta facilidad del software libre. Actualmente LibreOffice ofrece la alternativa a los negocios que no quieren pagar las costosísimas licencias de Microsoft Office, para mantener una infraestructura de software para oficina totalmente legal y gratuita. Su uso es de los más intuitivos, y supera con creces al software ofrecido por otros fabricantes.
Para terminar
Si bien una solución de software libre puede ser lo ideal para su empresa, también es cierto que ninguna solución será, de facto, gratuita. El software podría serlo, pero necesitará a un especialista, y como especialista tendrá un costo. Esta afirmación es muy necesaria puesto que mucha parte del empresariado latinoamericano espera que algo "libre" sea completamente gratuito.
También es cierto que debe tener conocimientos su personal adecuados a su realidad. Conozco empresas que prefieren capacitar a un "formateador" porque su sueldo es demasiado bajo, y terminan por abandonar proyectos ambiciosos porque el empleado no les da la talla.
El punto de este análisis debería verlo desde la perspectiva de "voy a ahorrar" porque no tendrá que comprar licencias para las actualizaciones; "voy a tener un producto a la medida de mis necesidades", y también "voy a crecer con esta solución, y la solución va a crecer conmigo".