Modernización de sistemas
Reemplazar una parte es la mitad más chica. Mantener la vieja respondiendo bien hasta que la nueva se gane el cambio es donde se van el cronograma y el presupuesto.
Tu sistema hace lo que se construyó para hacer, la mayoría de los días. Se fue extendiendo durante años por gente que ya no está, con plazos que eran reales en su momento, y cada una de esas decisiones tuvo sentido el día en que se tomó.
Lo que se le pide ahora no es lo que se le pedía entonces. Canales nuevos que atender, reportes nuevos que producir, reglas nuevas que cumplir, y gente que espera una respuesta en el momento y no al final del día.
Cada una de esas cosas llega como un pedido de cambio, y cada uno lo estima gente que no puede establecer del todo qué más va a tocar. La documentación describe una versión que ya no existe, y quien podría haber respondido de memoria se fue.
Así que toda estimación carga un margen para lo desconocido, y ese margen crece cada año se haga algo o no. Eso es lo que cuesta la brecha, y no es caída de servicio. Es la velocidad a la que el negocio todavía puede cambiar de opinión.
Lo que se le pide a estos sistemas es nuevo: que un agente pueda averiguar qué contienen y actuar sobre eso, sin una persona en el medio traduciendo.
La mayoría de los sistemas que llevan años corriendo no pueden responder eso, y la razón no es su edad. Es que lo que saben está repartido entre código, stored procedures, jobs programados y convenciones que nadie escribió, la misma razón por la que son difíciles de explicarle a un desarrollador nuevo.
Esa superposición es la parte útil. Una descripción de qué contiene el sistema, dónde están sus límites y qué operaciones son seguras de llamar es la mayor parte del trabajo en los dos casos, lo que significa que no tiene que ser un programa aparte con su propio presupuesto.
Conviene resolverlo antes de fijar el plan de modernización, porque cambia qué significa terminado.
Los modelos leen bien código desconocido, y producen rápido algo que parece equivalente. Esa parte del trabajo se abarató de verdad, y no hay razón para esperar que se encarezca.
La prueba no se abarató. Antes de poder apagar el componente viejo, alguien tiene que establecer que el nuevo se comporta igual, incluidos los casos que nadie escribió, los que existen porque un cliente se quejó una vez y se agregó una regla sin decirlo.
Esa evidencia no se genera. Se construye, a partir del comportamiento del propio sistema: los datos que ya procesó, las excepciones que ya maneja, las salidas que ya produjo y en las que alguien río abajo ya confía.
Un programa que produce código nuevo rápido y evidencia despacio no se volvió más rápido. Movió el riesgo al final, que es el lugar más caro para encontrarlo. La mayor parte de nuestro esfuerzo va a la segunda mitad.
El orden no es cuestión de gusto, y no sale de la tecnología. Sale de tres cosas que son ciertas sobre cada parte de tu sistema.
Las partes que el negocio pide cambiar una y otra vez son donde se está pagando de verdad el costo del sistema actual. Una parte que nadie necesitó tocar en años sale barato dejarla quieta, por vieja que se vea desde afuera.
Un componente que puede fallar una hora sin que nadie afuera lo note carga un riesgo distinto al de uno que deja de facturar. Eso no lo pone automáticamente más tarde en el orden, lo pone en otro tipo de trabajo, con otra evidencia requerida antes de moverlo.
Donde nadie puede decir qué hace una parte, ninguna estimación para cambiarla es real. Esas partes se leen antes de agendarlas, y esa lectura es lo que convierte un plan en algo con lo que el negocio puede comprometerse.
Ésas son las líneas de base, y se toman mientras el sistema sigue intacto, porque después no se pueden recuperar.
Del pedido a que el negocio lo tenga, no del ticket al merge.
Contado sobre las partes que nadie quiso tocar.
La que ningún competidor publica, y la que mejor predice cuánto cuestan los próximos cinco años.
A percentage carries four things: qué se midióqué era antesqué es ahoraquién lo midió. Without those, it is a number that reads like evidence and is not.
Una lectura de tu sistema, entregada como documento: qué hace hoy, qué partes cargan el costo del cambio, y en qué orden trabajaríamos. Es tuya siga o no siga algo después.