Cuando se desarrolla un programa para el que utilizamos librerías (paquetes, plugins), otro software a fin de construir nuestro software. Al existir dependencias entre programas tenemos que estar pendientes de las actualizaciones de todas las partes de nuestro software.
Si hacemos una analogía con construir un edificio y construir software diciendo que los ladrillos, columnas son piezas de software que no necesariamente desarrollamos nosotros sino de las que nos servimos como apoyo, la diferencia a destacar es que en el software los elementos no son estáticos, el software está en constante cambio y tenemos que cambiar constantemente los ladrillos de nuestro software. Así se escoja piezas de software altamente utilizadas con una larga duración en el mercado pueden dejar de utilizarse y ser necesario un cambio.
En el siglo pasado adquiríamos un producto cerrado. Ahora se tiende a servicios que incorporan constantemente cambios.
¿Por qué no es posible tener la última versión?
La última versión no es compatible.
Como estamos integrando varios programas hay dependencias. Cuando se actualiza el software no solo es por mejorar la seguridad, puede darse un cambio de estructura, actualización del lenguaje, funcionalidad, etc. Algunos cambios hace que se produzca un cambio importante que hace que la nueva versión no sea compatible con otras versiones.
Por ejemplo, nuestro software puede no ser compatible con versiones 1.x.x y 2.x.x pero si con la 3.x.x, 4.x.x pero cuando sale la 5.x.x no es compatible porque hay cambio en el lenguaje así que para poder actualizar toca realizar cambios en nuestro software.
Se suele utilizar una forma de nombrado o versionado para indicar cambios menores y por lo tanto si se usa un software 1.1.1 y se pasa a utilizar el 1.2.0 no debe ser problemático pues es un pequeño cambio. Un cambio más grande que puede crear la necesidad de cambio en nuestro código para poder adaptarlo puede ser pasar de un 1.4.10 a 2.0.0. Sin embargo, si se introduce un fallo da igual si es un cambio pequeño 1.1.1 a 1.1.2.
¿Por qué no es deseable tener la última versión?
La última versión tiene fallos.
Sí, la recomendación es que nuestro software esté con las últimas actualizaciones por seguridad. ¿Acaso no pueden introducir algún problema en la última versión? Sí, aunque se haga todo lo posible por evitar esto puede pasar. Así que la solución suele ser liberar una nueva versión que soluciona el fallo pero hasta que pasa eso, que pueden ser horas, meses o nunca, se opta por volver a una versión anterior.
Como caso particular una vez trabajaba con un plugin para un software costoso, ampliamente utilizado y tanto el programa principal como el plugin eran desarrollados por la misma empresa. Desde soporte solo se ofreció realizar el trabajo del plugin por lo que debía enviar mis archivos a ellos. Para mí no era una solución ya que quería tener el control de usar varias veces el plugin. Además, como suele ser lo usual el fabricante tiene las versiones anteriores disponibles, pues este fabricante no las facilitaba. Y el fallo mío fue tampoco tener las versiones anteriores que funcionaron. Tardaron en sacar la nueva versión sin el fallo casi un año.
Realizar actualizaciones puede ser fácil pero no rápido
Debido a la dependencia que existe entre las distintas piezas de software que integran nuestro programa cuando se actualiza una parte puede afectar a varias y así no funcionar. Entonces, toca buscar la versión más actual posible sin fallos que sea compatible con el resto de programas.
Cuando no es compatible puede ser por un cambio mayor el cual tiene como efecto que debamos hacer cambios en nuestro código para poder hacerlo compatible. ¿Y por qué vamos a querer esto? Porque queremos avanzar con el resto de componentes que ayudan a nuestro software porque las versiones antiguas no se les suele seguir dando soporte, ni mejoras, ni nada.
2022-09-28
No hay comentarios:
Publicar un comentario