Al principio de mi carrera, depuraba por corazonada. Algo se rompía, me quedaba mirando el código, cambiaba algo, redeployaba, esperaba. A veces funcionaba. A menudo empeoraba las cosas.
Cuando construyes sistemas de los que la gente depende, no puedes permitirte adivinar. Desarrollé un marco para depurar sistemáticamente. No es glamoroso, pero funciona siempre.
El Marco: AISLAR
A — Identifica el síntoma (no la causa) I — Acota el radio de explosión S — Observa los datos (logs, métricas, trazas) L — Enumera hipótesis (mínimo 3) A — Evalúa cada hipótesis con evidencia R — Prueba la corrección de forma aislada E — Explica lo sucedido (postmortem)
Déjame guiarte a través de un ejemplo real.
Caso Real: Dashboard Cargando 30 Segundos
A — Identifica el síntoma. Los usuarios reportan que el dashboard de calidad tarda 30+ segundos en cargar. Localmente carga en 2 segundos. Solo en producción.
No saltes a "es un problema de base de datos" o "es un problema de red" todavía. Solo describe lo que ves.
I — Acota el radio de explosión. ¿Son todos los usuarios o algunos específicos? ¿Todos los navegadores? ¿Comenzó cuándo? ¿Correlacionado con un deploy?
En este caso: todos los usuarios, comenzó hace 3 días, sin deploy en esa ventana. Eso descarta "enviamos código roto" como causa.
S — Observa los datos.
