Experiencias y Consejos de un Desarrollador: El paradigma de trabajar con versiones antiguas de software y librerias
Cuando Iniciamos cualquier proyecto siendo programadores, tenemos la ilusión de que vamos a utilizar las ultimas versiones de las tecnologías mas demandas en la industria. En realidad no es así, muchas empresas tienen su stack tecnologico en la cual tienen años en producción. Nuestro trabajo normalmente se centra en mantener la infraesructura operativa, creando soluciones que se integren a la plataforma tecnologica de la organizacion.
Antiguamente cualquier programador sabe que su solución depende pricipalmente del hardware del equipo de producción, hay casos que la maquina es antigua y no puede seguir al tanto de sus actualizaciones quedando obsoleta, pero sigue funcionando y generando ingresos. De aqui la incognita ¿Puedo actualizar el software si ya esta en fin de su ciclo de vida? La respuesta es depende. Si la maquina cumple los requisitos para realizar una actualizacion a nivel de S.O y las dependencias del programa que necesita, animo a que realicen el proceso, porque a la larga benefician a la empresa con actualizaciones de seguridad y rendimiento como resultado mejor productividad.
Pero que pasa si el hardware no es compatible con nuevas versiones. La maquina esta obligada a quedarse en esa versión porque no cumple con los requisitos para actualizar. Alli los desarrolladores tienen que trabajar con versiones antiguas que ya no se dan mantenimiento.
Un ejemplo claro es desarrollar aplicaciones para arquitecturas para Windows 7 y Linux de 32 bits estas plataformas anunciaron su ciclo de vida, hace ya algunos años, pero la estadisticas muestran que 40% sigue usando Windows 7 en las organizaciones y existen usuarios como en instituciones gubernamentales que utilizan distribuciones de Linux de 32 bits en caso de America Latina. ¿Como llegar a ese nicho de mercado? Bueno tienes que trabajar con herramientas en versiones anteriores no soportadas que corran en las plataformas y llegar a tu publico.
Una experiencia personal que realice mi proyecto de universidad en un stack tecnologico actualizado y resulto que no corre en la maquina del laboratorio porque faltaban dependencias y las que estaban no cumplian con los requisitos. Por supuesto que perdi la nota de la práctica de Ingenería de Software, pero aprendi una gran leccion:
"Como desarrolladores, al
momento de llegar a cualquier organización debes estar preparado para
trabajar con versiones antiguas de bibliotecas y programas que corran
sobre el hardware de producción."
Y las migraciones hacerlas sobre un entorno de pruebas para que el pase a producción tenga el menor impacto posible.
En los proximos articulos ¿Como lidiar con la fatiga de JS al momento de realizar una aplicacion web?