blank
27
Jun

Código Legacy, un problema de difícil solución

Código Legacy, un problema de difícil solución

Os voy a contar una historia de ficción pero real como la vida misma que me pudo pasar a mi en un pasado cercano o a cualquiera de vosotros, donde una empresa no ve más allá del mes siguiente y no dedica esfuerzos a actualizar su código.

Las empresas tecnológicas no siempre triunfan y tienen éxito, algunas se quedan por el camino al no obtener resultados satisfactorios, otras mueren de éxito por no poder ofrecer todo lo que sus clientes piden, y otras aunque tenga pocos años de vida ya mueren de viejas porque las mata su propio código.

¿Qué ocurre con el código legacy?

Y es que un código legacy con una arquitectura antigua que no sea escalable para una empresa pequeña o mediana que quiera crecer puede ser su fin por no poder ofrecer a sus clientes los resultados que esperan.

Imaginaros una empresa que tenía el código tan legacy que todo lo que ejecutaba en sus servidores estaba “deprecated”, ya no había actualizaciones de ningún tipo y de viejo se retiraba el software del mercado, con el problema de tener que reinstalar algo que ya no existía y tener que buscar algo similar en el mercado.

Todos los departamentos de la empresa estaban empeñados en crecer, aumentar ventas, más clientes sin entender que todos esos clientes iban a parar a una plataforma obsoleta, anticuada, lenta y con múltiples errores, y lo peor no era que tuviera errores sino que nadie se enteraba de los errores hasta que pasaba un tiempo.

Y se creó un círculo vicioso, entraban clientes, tenían problemas con la plataforma y se marchaban los clientes.

Pero la junta directiva o era incapaz de ver el problema o solo veían dólares en sus ojos, como el tío Gilito. Eran incapaces de entender porque su máquina de vapor no corría como un hyperloop.

blank

Actualizar el código del sistema

Desde el departamento de Ingeniería intentabamos hacer ver por que era buena idea actualizar el código de nuestro sistema:

  • Corregir errores, esto era un problema y requería mucho tiempo de los ingenieros para investigar y localizar los errores porque quien había realizado este código ya no estaba en la empresa, como tantos otros que se habían ido.
  • Ahorro de costes, las horas dedicadas a mantener código antiguo es mayor que cuando trabajas con código actualizado, y el tiempo es dinero. Es un coste mayor para la empresa.
  • Seguridad, mucho código antiguo ya no está soportado y no tiene actualizaciones de seguridad por lo que es un peligro para la empresa que está expuesta a ciberataques.
  • Obsolescencia tecnológica, corremos el riesgo que componentes que utilizamos de terceros en nuestro código dejen de funcionar por que el proveedor los ha retirado por viejos. Con lo que hay que invertir tiempo en arreglar el problema.
  • Añadir / eliminar nuevas funcionalidades puede ser un problema y un coste en tiempo porque muy probablemente quien va a desarrollarlas no sabe cómo está el código con lo que tiene que invertir más horas.
    Además eliminar cosas de un monolito puede causar errores inesperados en otro punto de la plataforma que esté relacionado y no lo sepamos.
  • Velocidad, rendimiento, el código legacy en plataformas antiguas tiende a perder rendimiento y velocidad y por mucho refactoring que se realice a veces no es suficiente sino que hay que pensarlo de otra forma porque este código se pensó para unos requerimientos que ahora han cambiado.

El rápido avance de la tecnología

Puedo entender que la empresa tenga poco dinero en caja o que sean pocos desarrolladores pero no puedo entender que no se dediquen al menos 8 horas a la semana a realizar cosas nuevas. Al cabo del año 8 horas a la semana son muchas horas en las que se puede ir avanzando hacia una nueva dirección.

Y es que no es necesario hacerlo todo de golpe o dedicar todos los recursos a un proyecto nuevo, se puede ir haciendo “de a pocos , al merme”, como diría el Mago More, que es hacer las cosas poco a poco y no todo de golpe, cada dia haces un poquito, cada semana, al cabo de un año has hecho mucho pero si pensamos que no se puede, que no hay tiempo, pasa este año y no hemos hecho nada, y el siguiente y el otro …

Con un software de hace 10 años sin actualizarse solo se puede sobrevivir, no se puede avanzar ni progresar porque la tecnología avanza muy deprisa y lo que era bueno y rápido hace un tiempo ahora está obsoleto. La tecnología avanza a grandes pasos, es el futuro y el futuro ya está aquí.

Pero fantasía, ¿o no?, la verdad es que es la realidad de muchas empresas que por falta de conocimiento de quien lidera o por falta de medios están abocados a una muerte segura y lenta a menos que den un giro de timón tecnológico.

Más artículos de Alex Arenols