Blog / Plataformas y migraciones
Tu sistema viejo sabe cosas que nadie escribió
El software viejo carga en silencio reglas de negocio que nadie recuerda: descuentos, excepciones, clientes especiales, redondeos, fechas. Por qué las reescrituras las pierden, cómo sacarlas a la luz antes de reemplazar nada, y una lista.
Imagina el día en que un sistema nuevo sale a producción. Es más rápido, más limpio, más fácil de usar. Dos semanas después llama un cliente de muchos años: su factura está mal. Su descuento desapareció. Nadie en el proyecto sabía de ese descuento, porque nunca estuvo escrito en ningún lado, salvo dentro del código viejo.
Esa historia es común, y no es culpa de nadie. Un software que lleva años operando un negocio se va llenando de decisiones. Cada una tenía sentido en su momento. Casi ninguna quedó por escrito. Ya sea que estés aprobando un reemplazo o construyéndolo tú mismo, este artículo trata de encontrar esas decisiones antes de que se pierdan.
Lo que se esconde dentro del software viejo
Una regla de negocio es cualquier decisión que el software toma en nombre del negocio: quién paga cuánto, qué se permite, qué pasa y cuándo. En los sistemas viejos, las reglas que más importan suelen ser las que nadie recuerda. Casi siempre caen en unos pocos grupos:
- Descuentos y precios. Un descuento de lealtad agregado hace años para un grupo de clientes. Un precio que cambia a partir de cierta cantidad. Una promoción que debía terminar y nunca terminó.
- Excepciones. “Los pedidos de esta región no pasan por la revisión de crédito.” “Este producto no se puede enviar junto con ese otro.” Alguien lo pidió una vez y se quedó.
- Clientes especiales. Cuentas con sus propios plazos de pago, su propio formato de factura o sus propios pasos de aprobación, muchas veces reconocidas por un número de cliente escrito directamente en el código.
- Redondeos. Si los totales se redondean por línea o al final, hacia arriba o hacia abajo, al centavo o a la moneda más cercana. Diferencias pequeñas que se acumulan, y que tu contador va a notar.
- Fechas y horarios. Qué cuenta como “hoy” para un pedido hecho a las 11:58 p. m. Cuándo cierra el mes. Qué pasa un día feriado, o el 31 en un mes que solo tiene 30 días.
Piensa en un sistema viejo como un empleado con muchos años en la empresa que nunca tomó notas. Sabe cómo funciona todo en realidad. Si se va sin hacer la entrega, el conocimiento se va con él.
Por qué las reescrituras pierden estas reglas
Una reescritura suele empezar con una lista de requisitos: lo que el sistema nuevo debe hacer. Esa lista se escribe de memoria y a partir de documentos, y la memoria y los documentos son justo donde faltan estas reglas. Después, el sistema nuevo hace lo que dice la lista, y lo hace bien. Las reglas que nunca estuvieron en la lista simplemente desaparecen.
La pérdida es silenciosa. Nada se cae. Un total sale un poco distinto, un correo sale un día tarde, un cliente recibe el precio estándar. Para cuando alguien lo nota, puede que el sistema viejo ya esté apagado.
Cómo sacarlas a la luz
Tres métodos funcionan mejor juntos, porque cada uno encuentra cosas que los otros no ven.
- Habla con quienes lo usan. No solo con los gerentes: con quien emite las facturas, con quien atiende los reclamos, con quien arregla las cosas a fin de mes. Pregunta “¿qué haces a mano?”, “¿qué clientes son distintos?” y “¿cuándo te sorprende el sistema?”. Sus soluciones improvisadas apuntan directo a reglas escondidas.
- Lee el código, con ayuda de la IA. Las herramientas de IA son buenas para leer código viejo y explicarlo en lenguaje simple. Pídele a una que liste cada lugar donde el código revisa un cliente, un producto o una fecha en particular, cada número escrito a mano en el código y cada cálculo que redondea. Después, una persona que conoce el negocio revisa la lista. La herramienta encuentra candidatos; las personas confirman cuáles son reglas reales.
- Compara resultados, el viejo contra el nuevo. Pasa los mismos pedidos, facturas o reportes reales por los dos sistemas y compara los resultados línea por línea. Cada diferencia es un error del sistema nuevo o una regla que nadie mencionó. Por eso el sistema viejo debe seguir corriendo hasta que la comparación salga limpia.
Después, escríbelas
Cada regla que encuentres va a una lista sencilla: qué hace, a quién afecta, por qué existe si alguien lo sabe, y si debe quedarse. Algunas van a resultar errores o restos que nadie necesita, y quitarlas es una buena decisión, siempre que sea una decisión. Esa lista se vuelve el documento más valioso de todo el proyecto, porque es la primera vez que el negocio tiene sus propias reglas por escrito.
Si estás evaluando un reemplazo y quieres ver qué tan listo estás, nuestro chequeo de modernización te hace las preguntas correctas en pocos minutos.
Lista: antes de reemplazar un sistema viejo
- ¿Hablaste con quienes lo usan todos los días, no solo con sus gerentes?
- ¿Tienes una lista de clientes, productos o regiones que reciben un trato distinto?
- ¿Sabes cómo redondea, y en qué paso?
- ¿Sabes cómo maneja las fechas: horas de corte, fin de mes, feriados?
- ¿Alguien buscó en el código clientes, números y fechas escritos a mano?
- ¿El viejo y el nuevo van a correr en paralelo, comparando resultados con datos reales?
- ¿Cada regla encontrada quedó por escrito, con una decisión: mantener, cambiar o quitar?
- ¿El sistema viejo va a seguir disponible hasta que la comparación salga limpia?
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 →