Por qué la mayoría de las reescrituras de código no valen la pena

Fuentes: Most rewrites serve the engineer, not the business

Un ingeniero veterano relata cómo, en un verano, madrugó hasta las 4 de la madrugada para reescribir de CakePHP a Laravel un sistema que ya funcionaba en producción. El cambio no aportó nada al negocio: la aplicación hacía lo mismo para los mismos usuarios y al mismo ritmo. La única mejora fue la comodidad del propio desarrollador. Y, aun así, nunca llegó a justificar el esfuerzo en términos empresariales.

El artículo sostiene que la mayoría de las reescrituras responden a motivaciones del ingeniero —lo que quiere aprender, lo que ofende a su gusto, lo que queda bien en una entrevista— y no a la empresa que paga el salario. El código en producción durante años es un registro de errores que alguien ya corrigió: cada condicional extraña, cada reintento con un timeout sospechoso es tejido cicatrizal que marca incidentes invisibles para quien llega nuevo. Joel Spolsky lo advirtió en 2000 al calificar la reescritura completa como el peor error estratégico.

Lo desconocido no es lo mismo que lo roto, señala el texto: quien no domina una herramienta lee como errores todas las decisiones que no comprende. Reemplazar el código implica perder esas correcciones y reencontrar los mismos fallos en producción, esta vez sin el contexto del autor original.

Reescribir sí tiene sentido cuando el runtime o una dependencia clave están descatalogados, cuando solo una persona entiende el sistema y se va, cuando cada nueva característica cuesta tres veces más por culpa del diseño, o cuando el negocio necesita una capacidad para la que el código no fue pensado. La diferencia entre una reescritura legítima y una de vanidad se reduce a una pregunta: ¿se le puede poner una cifra al dolor?

Sobre la irrupción de la IA generativa, el autor advierte que reduce el coste de teclear pero no el de redescubrir por qué el código era como era. Un agente produce código limpio y plausible en minutos, sin el conocimiento de por qué existían那些 tiempos de espera, y al desplegarlo reaparecen los mismos bugs, ahora sin contexto. La generación más barata no cierra el ciclo: lo hace más fácil de empezar y más difícil de parar. La salida, propone, es documentar las razones en lenguaje claro para la siguiente persona —o el siguiente modelo.