Versionado de Software: diálogo entre desarrolladores y usuarios
Todas las empresas que desarrollan y comercializan software implementan un esquema de versionado que, además de definir y organizar el trabajo de los desarrolladores, pretende establecer una comunicación entre la empresa y los usuarios.
AI revisar la bibliografía sobre el tema, encontraremos un gran volumen de información sobre los modelos de versionado y lo que implican para los desarrolladores, pero en este artículo les invitamos a reflexionar sobre los esquemas de versionado de software desde el punto de vista de los usuarios.
En principio, como usuarios, lo que podemos obtener del modelo de versionado de software utilizado por una empresa en particular para un producto de software específico es información.
- Información sobre cómo enfrenta esta empresa el proceso de desarrollo de su producto de software.
- Información sobre cómo gestiona las mejoras, correcciones y cambios que experimenta el software, y finalmente
- Información sobre la frecuencia en que habrá de liberar los productos, llámense versiones o actualizaciones.
Ahora bien, una vez obtenida esta información, ¿qué podemos hacer con ella?
Podemos ejecutar, entre otras actividades como la planificación de respaldos de los sistemas, planificación de descarga y ejecución de actualizaciones, y la definición de los procesos asociados a la recuperación de un estado estable en el caso de un fallo.
El problema del versionado
Lamentablemente, no es infrecuente que algunos usuarios de un software dado ignoren cómo interpretar la secuencia de números y letras que solemos llamar versión y a partir de allí pierden toda la información asociada.
En realidad puede ser difícil comprender un esquema de versionado de software, ya que no existe un modelo universal que rija para todas las empresas. Por el contrario lo que sí que existe son múltiples esquemas de versionado con diferentes preceptos y características.
Además, también existe el agravante de que las empresas de software se sienten en la libertad de adaptar los modelos de versionado a su propia filosofía, introduciendo conceptos como edición, fecha de compilación, fase de desarrollo, parches, etc., generándose más confusión.
Una de las confusiones más recurrentes es aquella que se centra en la diferencia entre versión, release y actualización.
Diferencias entre Versión, Release y Actualización
En principio, cuando una empresa de software introduce cambios o mejoras sobre su producto está generando diferentes versiones del software. Muchas de estas versiones no llegan a ser lanzadas al mercado, sino que quedan como parte del trabajo interno de la empresa.
Cuando la empresa produce una versión que desea liberar se genera entonces una versión release que suele incluir todos los programas involucrados, además de la documentación y materiales de soporte apropiados.
Por lo tanto, todos los releases son versiones, pero no todas las versiones se convierten en releases.
Habiendo aclarado esto, debemos decir la mayoría de los productores de software basados en su modelo de versionado de software llaman versión a aquellos productos que surgen de cambios radicales en el sistema, y release o actualizaciones a cambios menores o mejoras dentro de una misma versión.
Hay cierto consenso en las razones que justifican una nueva versión, tales como:
- Cambios significativos en la estructura de la base de datos.
- Cambios en la plataforma como cambios de lenguajes e incluso un cambio en la idea general que sustenta el producto.
- Introducir nuevas funciones significativas del sistema.
- Cambios en la estructura de comunicaciones o en los protocolos utilizados.
En tanto que las razones para generar un nuevo release (actualización) pueden ser:
- Correcciones de errores en el código.
- Optimizaciones del código.
- Mejoras en los niveles de seguridad.
- Introducción de nuevas funciones pequeñas, en términos de agregación y no de sustitución.
Aclarados estos términos, pasemos a revisar el modelo de versionado de software utilizado por Pandora FMS.
Rolling Release
El término Rolling Release, asociado con otros como Actualización Continua y Liberación Continua, refiere a un modelo de desarrollo y versionado en el cual el software es constantemente actualizado por pequeñas y frecuentes modificaciones, las cuales se liberan en cuanto son probadas.
La principal virtud del modelo Rolling Release es ofrecer productos de software constantemente actualizados. Lo que se opone directamente al modelo de tiempo fijo, también llamado modelo estándar.
En el modelo estándar una nueva versión del software es liberada luego de un tiempo fijo, como seis meses o cinco años, por ejemplo, siendo este periodo una decisión individual de cada empresa de software.
El modelo estándar, que sigue siendo muy utilizado, puede presentar ciertos aspectos negativos, tales como:
- Un tiempo muy largo entre una versión y otra: la actualización de una versión anterior por una nueva responde, como ya dijimos, a un periodo más o menos fijo.
- Los sistemas pueden quedar obsoletos: dado el tiempo entre un lanzamiento y otro y las decisiones de no actualizar. Hay que considerar el siguiente ciclo en el peor de los casos; como usuarios solemos, en primer lugar, esperar por el lanzamiento. Luego esperar que los primeros instaladores hagan sus pruebas, para entonces revisar todos reportes de fallas o éxito y finalmente planificar nuestra instalación, llegando incluso a decidir no actualizar, sino esperar el siguiente lanzamiento justamente para evitar los problemas.
- Por una razón u otra, siempre es necesario hacer reinstalaciones de cero o limpias; es decir, aquellas donde cualquier versión previa debe ser erradicada.
Tipos de Usuarios y Rolling Release
Pensemos por un momento en los usuarios. En un ejercicio de simplificación podemos considerar dos tipos de usuarios en términos de la forma de aproximarse al tema del versionado de software:
- Aquellos que luego de instalar y conseguir una versión estable del sistema esperan con ansias las nuevas versiones y desean constantemente que sus sistemas estén actualizados.
- Un segundo grupo de usuarios con una natural tendencia a instalar un producto, alcanzar una versión estable y funcional y olvidarse de todo “el mayor tiempo posible”.
Para el primer tipo de usuarios el modelo Rolling Release es ideal, ya que estos usuarios difícilmente aceptarán un modelo de versionado que les suponga esperar un tiempo específico por importantes actualizaciones de su sistema.
Para el segundo grupo, el modelo Rolling Release resulta también conveniente ya que aleja la mayor preocupación de los usuarios, que son los fallos en un sistema funcional y la inversión en tiempo y esfuerzo en reinstalaciones.
Así pues, ambos tipos de usuarios pueden verse beneficiados por las siguientes características del modelo Rolling Release:
- Actualizaciones constantes: El tiempo entre que una mejora o un cambio es desarrollado y el momento en que, como usuarios, podemos disfrutar de dicha mejora es menor que en el caso de que se aplicara el modelo estándar.
- No se requieren reinstalaciones de todo el sistema: ya que las actualizaciones se realizan de forma constante y se presentan para elementos puntuales. Por lo tanto, podemos descartar pesadas descargas de Internet y aquello de instalaciones limpias cada cierto tiempo.
Pandora FMS y Rolling Release
La versión 1.0 de Pandora FMS fue liberada en octubre de 2004. A partir de entonces y hasta la versión 6 se utilizó un esquema estándar de versionado de software, según el cual se liberaban versiones cada cierto tiempo.
En este enlace, el lector interesado puede revisar una tabla con todas las versiones de Pandora FMS desde su lanzamiento.
Un hito importante se produjo en marzo de 2017, cuando se lanza Pandora FMS versión 7.0 Next Generation (NG), a partir de la cual se pasa al esquema de liberación continua Rolling Release.
La principal motivación que llevó a introducir el modelo Rolling Release en el desarrollo de Pandora FMS, tal como lo expresó Sancho Lerena, CEO de Artica ST (desarrolladora de Pandora FMS), en una entrevista para Sourceforge: “…fue la idea de satisfacer las necesidades de los usuarios haciendo lo que se supone que el software debe hacer de la mejor manera y además hacer cosas nuevas integrándolas al proyecto que ya se está ejecutando.”
Por supuesto, la implementación del modelo de Rolling Release tiene un impacto en el proceso de desarrollo de Pandora FMS, que parte de la definición de un repositorio principal sobre el cual se integra varias veces al día el trabajo de los desarrolladores individuales.
Al lector interesado en profundizar en Rolling Release y su implementación a nivel de las actividades de desarrollo le recomendamos la lectura del artículo sobre Liberación Continua publicado en este mismo blog.
En todo caso, la aplicación del modelo Rolling Release en Pandora FMS ofrece a los usuarios, además de todas las ventajas mencionadas en el apartado anterior:
- Actualizaciones de Pandora FMS en procesos de descarga sencillos, cortos y frecuentes.
- Un corto tiempo de acceso a estas actualizaciones; tan cortos que puede llegar a ser de solo horas.
- En Pandora FMS se generan actualizaciones específicas e incrementales que permiten incidir solo sobre aquello que está desactualizado o sobre nuevos servicios.
Por otro lado, debemos decir que los defensores del modelo estándar utilizan como principal argumento la estabilidad del modelo, partiendo del hecho que todos los cambios y mejoras son probados de una forma integral con todo el sistema antes de liberar la versión.
Aquí cabe destacar que las fallas asociadas con la funcionalidad de todo el sistema pueden ser controladas aplicando las pruebas suficientes con la metodología correcta. De hecho, para Pandora FMS, durante todo el 2017, se lanzaron muchas actualizaciones y mejoras sin ninguna falla o problema importante.
Para terminar, les invitamos a seguir investigando sobre las facilidades que Pandora FMS ofrece para facilitar las actividades de descarga e implementación de actualizaciones en este link.
Y si aún no conocen toda la cantidad de facilidades que convierten a Pandora FMS Enterprise en la solución de monitorización más completa les invitamos a revisar este link.