Blog / Plataformas y migraciones
Software viejo, reglas nuevas: cuándo reescribirlo y cuándo dejarlo como está
El software viejo no es un problema solo por ser viejo. Las señales de que es hora de actuar, las señales de que está bien así, los caminos intermedios entre dejarlo y reescribirlo, y una lista para decidir.
Casi todos los negocios dependen de algún software más viejo de lo que debería. Un sistema de pedidos hecho hace diez años. Una herramienta de facturación que escribió alguien que ya se fue. Una hoja de cálculo con macros que solo una persona se atreve a abrir. Tarde o temprano alguien dice “hay que reescribir esto”, y otra persona responde “funciona, no lo toques”. Los dos pueden tener razón.
Este artículo es para saber cuál tiene razón en tu caso, ya seas quien aprueba el presupuesto o quien tiene que mantener la cosa funcionando. Las herramientas de IA hicieron que reescribir sea más rápido y más barato que antes. Eso cambia el costo de actuar. No cambia la pregunta de si debes hacerlo.
Viejo no es lo mismo que roto
El software heredado (en inglés, legacy) es simplemente software del que todavía dependes, hecho con herramientas antiguas o por personas que ya no están. Es como un edificio viejo: algunos son sólidos y solo necesitan pintura, otros tienen un cableado que va a provocar un incendio. La edad dice muy poco. Lo que importa es cuánto te cuesta mantenerlo y qué te impide hacer.
Señales de que es hora de actuar
- Ya no hay parches de seguridad. El lenguaje, el framework o el servidor donde corre ya no recibe correcciones de seguridad. Un parche es una corrección que publica el fabricante cuando se descubre una debilidad. Cuando los parches se acaban, cada debilidad nueva que se descubra en el mundo queda abierta en tu sistema, para siempre. Esta es la señal que no debería esperar.
- Nadie lo entiende. Quien lo construyó se fue, no hay notas y el equipo lo trata como un cuarto cerrado con llave. Toda pregunta sobre él termina en “habría que revisar”.
- Cada cambio rompe algo. Un cambio pequeño en la plantilla de facturas tumba la exportación. Los cambios toman semanas, casi todas en probar a mano y cruzar los dedos.
- Frena el crecimiento. No puedes agregar un medio de pago, conectar una herramienta nueva, entrar a otro mercado o atender más clientes porque el sistema viejo no da abasto o no se puede conectar.
- Cuesta encontrar gente. Pocas personas trabajan todavía con esa tecnología, y las que lo hacen son caras o están ocupadas.
Señales de que conviene dejarlo como está
- Es estable. Hace su trabajo, casi nunca falla y, cuando falla, alguien sabe arreglarlo.
- Es barato de mantener. El hospedaje y el mantenimiento cuestan poco comparado con lo que costaría reemplazarlo.
- Nadie pide cambios. El negocio a su alrededor no está cambiando, así que el software tampoco lo necesita.
- Todavía tiene soporte. La plataforma sigue recibiendo correcciones de seguridad, aunque no esté de moda.
Si las cuatro se cumplen, casi siempre lo mejor es documentar cómo funciona, asegurarte de que los respaldos corran y gastar tu presupuesto en otra cosa. “Viejo y aburrido” es una buena manera de ser para un software.
Los caminos intermedios
La decisión rara vez es “reescribir todo” o “no tocar nada”. Dos caminos intermedios resuelven la mayoría de los casos con mucho menos riesgo.
- Envolverlo. Dejas el sistema viejo tal como está y construyes una capa moderna a su alrededor: una conexión limpia que otras herramientas puedan usar, o una pantalla nueva sobre los datos viejos. Es como ponerle una puerta nueva a una casa vieja sin reconstruir las paredes. Obtienes las conexiones que necesitas, y lo que funciona sigue funcionando.
- Reemplazar una parte a la vez. Eliges la pieza que más duele, por ejemplo la facturación o los reportes, reconstruyes solo esa y la cambias cuando está probada. Luego la siguiente. El sistema viejo se va achicando paso a paso, y en ningún momento todo el negocio depende de un gran día de lanzamiento.
Una reescritura completa a veces sí tiene sentido: cuando la plataforma de verdad está muerta, cuando el sistema es pequeño o cuando el negocio cambió tanto que el diseño viejo ya no encaja. Aun así, las reescrituras más seguras corren el sistema viejo y el nuevo en paralelo un tiempo y comparan sus resultados antes de que alguien apague el viejo.
Dónde entra la IA
Las herramientas de IA ayudan de dos formas. Pueden leer código viejo y explicarlo en lenguaje simple, lo que abarata mucho el problema de “nadie lo entiende”. Y aceleran la escritura del código nuevo. Lo que no pueden hacer es decidir de qué comportamientos del sistema viejo depende tu negocio. Para eso siguen haciendo falta personas que conozcan el negocio y revisen los resultados.
Si quieres una forma ordenada de mirar tu propio sistema, nuestro chequeo de modernización te lleva por las preguntas en pocos minutos.
Lista: ¿reescribir, envolver o dejarlo?
- ¿La plataforma donde corre sigue recibiendo correcciones de seguridad?
- ¿Al menos dos personas pueden explicar cómo funciona?
- ¿Cuánto tarda un cambio pequeño, y qué tan seguido rompe otra cosa?
- ¿Está frenando una meta concreta del negocio? Ponle nombre a esa meta.
- ¿Cuánto cuesta al año mantenerlo como está?
- ¿Una capa nueva a su alrededor resolvería el problema sin tocar lo de adentro?
- ¿Qué parte duele más, y podrías reemplazar solo esa primero?
- Si reescribes, ¿cómo vas a comparar los resultados del viejo y del nuevo antes de cambiar?
Escrito a partir del trabajo de nuestros ingenieros en sistemas en producción. ¿Quieres una segunda opinión sobre tu proyecto? Habla con un ingeniero.
Ver el trabajo →