12 de marzo de 2024 · Refactorización
Refactorizar un sistema legacy en Python sin detener la operación
Cómo planificamos una refactorización por fases en un ERP interno que llevaba ocho años sin pruebas automatizadas.
Cuando un sistema legacy sostiene la operación diaria, reescribirlo de golpe no es una opción. En este caso partimos de un monolito en Python 2.7 con lógica de negocio mezclada en las vistas y sin cobertura de pruebas. La estrategia fue aislar primero los módulos de facturación y stock, escribir pruebas de caracterización sobre el comportamiento actual y recién entonces mover código hacia servicios separados.
Documentamos cada decisión en el repositorio para que el equipo interno pudiera seguir el hilo sin depender de nosotros. El resultado fue una migración por etapas que nunca detuvo la operación y dejó al equipo con la capacidad de continuar el trabajo por su cuenta.
Resumen del caso
Un caso real de refactorización progresiva: qué se cambió primero, qué se dejó intacto y cómo se midió el avance.