Usar OpenSource o software de licencia

Primero aclaremos un punto, esto de llamarle software de licencia al que no es OpenSource es sólo una manera de llamarle, pues en términos estrictos, el OpenSource sí tiene licencia, la mayoría usa el mismo tipo de licencias o variaciones a las más conocidas, pero todos presentan una licencia, y el ser gratis tampoco es una característica necesaria y suficiente del OpenSource, pues tanto existen aplicaciones de licencia gratuitas como existen también aplicaciones OpenSource que cuestan sus buenos dólares.

¿Cuál es cuál?

La diferencia más importante entre el OpenSource y el software de licencia (quizá deberíamos llamarle ClosedSource) es la disponibilidad del código fuente. En un software OpenSource se debe garantizar a los usuarios la obtención, de alguna manera, del código fuente, en los software de licencia el código es propiedad del programador o de la empresa productora y el usuario o comprador no tiene nunca acceso a estos archivos ni se le permite andar modificando por su cuenta la aplicación, opción que sin duda resulta obvia cuando se tiene acceso libre al código.

OpenSource y software libre 

A pesar de que el concepto de OpenSource tuvo como antecesor al FreeWare (este nombre no les gustó mucho a los primeros desarrolladores de este tipo de software, y en una conferencia se definió el nuevo nombre que ahora todos conocemos: OpenSource), no es el costo lo que lo hace especial. Una cosa es que el software no cueste y otra que el código esté disponible. Actualmente existen varios ejemplos de OpenSource que cuestan y también de software de licencia que es totalmente gratuito.

El software libre o FreeSoftware es actualmente una versión mucho más “fuerte” del OpenSource donde además de suponer que el código fuente debe ser disponible a los usuarios, también supone que el software debe ser gratuito (Free Software Foundation, FSF). Aunque muchos promotores del OpenSource lo son también del software libre, habemos algunos que creemos que si bien el software puede ser gratuito y rentable, no siempre es una buena opción de negocios ofrecer el producto gratuito.

¿Y entonces..?

Pero olvidándonos de periplos taxonómicos, cuando como empresa o usuarios nos enfrentamos a la decisión de usar un software de licencia o un OpenSource, ¿cómo podemos decidirnos?

Desafortunadamente no existe la respuesta fácil, y eso usted ya lo sabía. Como en otras ocasiones, aquí la subjetividad y la propia experiencia tienen mucho que ver, pero también lo que nos dicen otras personas y lo que leemos, la receta, en todo caso, no creo que exista.

Como usuario final

Cuando ya conocemos un software que nos sirve, ya sea porque lo usamos en otro lugar, nos lo recomendaron o tenemos una versión de evaluación, antes de comprar y poner en producción la nueva herramienta, muchos de nosotros le damos una visitada a Google para saber si existen otras opciones. En muchos casos nos encontraremos con que existen varios productos que hacen o pretenden hacer lo mismo, tanto OpenSource como software de licencia. Lo aconsejable aquí es evaluarlos y contrastarlos todos, su costo, costo de servicio técnico, extendibilidad, integración con otras herramientas, personalización de la interfase de usuario, facilidad de uso, requerimientos adicionales de hardware y software, etc. Dependiendo de nuestro contexto particular, quizá logremos encontrar al mejor candidato. Aquí el problema de la decisión no es más difícil o más fácil que si sólo tuviésemos para escoger software de licencia con costo. La evaluación, en todo caso, no debe contemplar sólo el aspecto del costo, sino todo aquello que hace a una solución informática algo realmente productivo.

El problema se vuelve un poco más delicado a la hora de invertir en frameworks o plataformas más generales sobre las cuales tendremos que colocar otras herramientas, y estos casos tienen que ver mucho con ese tema del Desarrollo de software a la medida.

Cuando hay que hacer más software

El desarrollo de software no sólo es muy costoso, sino que además está expuesto a imprevistos que pueden alterar las fechas de entrega de una manera un poco escandalosa. No importa cuanto se esfuercen los desarrolladores en mantener el entorno de desarrollo con el máximo de seguridad posible, siempre hay problemas que no se pensaron y resolverlos puede comprometer el éxito del proyecto. Si bien este tema es más bien para otro día, tiene relevancia aquí pues una de las razones para elegir o no elegir OpenSource tiene que ver con el desarrollo de software a la medida.

La mayoría de los proyectos OpenSource tienen licencias que obligan a los desarrolladores que los utilizan para hacer nuevo software a colocar la misma licencia del software que se utilizó como herramienta (es importante notar que me refiero aquí a herramientas que se integrarán al nuevo software, es decir, bibliotecas o frameworks que deben distribuirse con el nuevo sistema, y no a herramientas de desarrollo como lo serían Eclipse o SharpDevelop).  Esto es, si utilizas OpenSource en el desarrollo de un nuevo software, el nuevo también deberá ser OpenSource (este comportamiento tipo virus de las licencias GPL ha sido varias veces criticado). Esto no siempre es así, existen algunas licencias como la MIT que le permite a los usuarios hacer casi lo que sea con el software, pero son pocos los proyectos con este tipo de licencias [otras licencias].

Cuando llegamos a este punto, la elección se complica. Si queremos que el nuevo software pueda venderse con licencia y sin código expuesto, es probable que no podamos usar bibliotecas o herramientas OpenSource en nuestro proyecto, y si queremos usarlas porque nos ahorrarían mucho tiempo y esfuerzo, quizá nos veamos obligados a exponer el código.

Aquí la toma de decisiones ya no es simple ni puede ser tomada sólo por el equipo de desarrollo con un poco de presión por la gente de compras que tiene un presupuesto ajustado, ahora es la empresa o los ejecutivos de negocios los que tienen que valorar la conveniencia de convertir o no su producto en OpenSource.

¿Y de qué ventajas estaríamos hablando al convertir un software en OpenSource o viceversa?

El OpenSource se maneja principalmente bajo un esquema de patrocinio. Su idea básica es que son proyectos de “la comunidad”, aunque esto de la comunidad no es algo del todo bien definido. Las empresas pueden patrocinar los proyectos pagando dinero con el que se da de comer a los desarrolladores involucrados y a veces hasta se pagan oficinas y personal de apoyo. El caso es que el contrato entre los desarrolladores y la empresa patrocinadora no tiene penalizaciones ni plazos forzosos de entrega, el patrocinio lo da la empresa y los desarrolladores lo utilizarán como mejor y honestamente crean conveniente. Parte del idealismo que muchos criticamos en el OpenSource y en el FreeSoftware incluye “detener el abuso de las prácticas voraces de los grandes monopolios”, el problema es que esperar un alto nivel de auto organización en los proyectos grandes de OpenSource es más que naif, personalmente creo que el OpenSource es una opción más que para esa “comunidad” abstracta de la que algunos hablan, para las empresas productoras y desarrolladoras de software.

Esto del patrocinio parece desproteger a la empresa “contratante”, pero si lo vemos con un poco más de distancia, también le conviene. Si otra empresa necesita un software parecido, puede participar en el patrocinio lo que permitirá aumentar recursos o distribuir los costos entre las dos o más empresas interesadas. También puede pasar que una empresa, una institución o un grupo de personas quieran participar con trabajo, apoyando con o como desarrolladores, que al final se traduce también en un apoyo económico.

El patrocinio de una empresa también puede favorecer a una mayor organización en el equipo de desarrolladores, si el equipo principal de desarrollo es pagado directamente por el patrocinador, la empresa puede “controlar” el desarrollo del producto sin arriesgarse a que “la comunidad” no termine por organizarse sola.

Otra ventaja o desventaja es que, como el código es público, los usuarios más entusiastas pueden desarrollar agregados o extensiones al proyecto original, dándole mayor flexibilidad, pero también, permitiendo a otros capitalizar con el esfuerzo del desarrollo original (esto último es un poco discutible, pues también podemos decir que el desarrollo original se aprovecha de los agregados y herramientas de terceros). Esta cualidad también podemos verla en los softwares de licencia, cuando tienen montado un sistema de plug-ins (o add-inns), pero aquí se requiere de los desarrolladores originales que tengan un buen sistema de adiciones y extendibilidad.

El OpenSource busca en la mayoría de los casos, que sea la “comunidad” de usuarios y programadores la que desarrolle también la documentación mediante Wikis y Foros, reduciendo así los costos un poco más. Esto termina usualmente en dos escenarios, o el proyecto no cuenta con documentación (o la que tiene es francamente inútil) o el proyecto cuenta con muy buena documentación (aunque a veces incompleta).

Así pues, la elección sobre el uso de software de licencia o OpenSource depende sobre todo de las necesidades de uso, soporte y extendibilidad que el proyecto o la empresa requieren y no tanto en el costo por lincenciamiento o el idealismo bien intencionado de crear software todos juntitos como hermanitos. El software es o bien una herramienta para mejorar la productividad o un bien (o un servicio) de consumo y en cualquier caso, su papel en la empresa es aumentar o generar la rentabilidad. Si un software favorece a la productividad de una empresa, su costo sólo debería ser un problema si este rebasa los beneficios que ofrece. Más allá de esto, la preocupación sobre la gratuidad sólo debe considerarse si nosotros queremos cobrar por un software que usa a otro con una licencia que nos obligue a continuarla.

2 thoughts on “Usar OpenSource o software de licencia

  1. Existen entornos de programación o lenguajes liberados bajo GPL y como bien explicas tienen ese efecto viral cuando modiifcas el software en cuestión, esto es el lenguaje.

    Pero cuando lo único que haces es programar con el mismo, es decir, crear un software nuevo, este último no es alcanzado por la GPL:

    Si modificas el lenguaje y quieres redistribuirlo con estas modificaciones tiene que ser bajo GPL.

    Si creas un software completamente nuevo, haciendo uso del lenguaje, razón de ser del mismo, puedes liberarlo bajo la licencia que quieras

  2. En efecto, el uso de software licenciado bajo la GPL no obliga al usuario a licenciar sus creaciones bajo la GPL, el caso de SharpDevelop, es el ejemplo que me viene a la mente, aunque la licencia creo que es LGPL, una varidad menos exigente de la GPL. Sin embargo, el uso de bibliotecas o frameworks y su inclusión dentro de la distribución de un software, sí obliga a licenciar bajo GPL las nuevas creaciones.

    Me disculpo por haber sido el culpable de esta confusión y agradezco a Batista por el comentario que me obliga a corregir mis palabras.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s