1. Síntomas
- Cada release se siente riesgoso — Pocos tests, deployment manual, conocimiento concentrado o componentes demasiado acoplados.
- Actualizar una librería rompe otra cosa — Versiones antiguas y dependencias que limitan seguridad, compatibilidad o mantenimiento.
- El sistema todavía sirve, pero cambiarlo es lento — La operación depende de él; reemplazarlo de golpe puede introducir más riesgo que beneficio.
- Integrar algo nuevo es cada vez más difícil — No existen APIs claras o la lógica está mezclada con interfaz, base de datos y reglas históricas.
- Nadie quiere tocar ciertas partes — Es una señal de deuda técnica y conocimiento perdido, no una prueba automática de que haya que reescribir.