Ir más allá de los síntomas para encontrar causas sistémicas.
La mayoría de la resolución de problemas aborda síntomas, no causas.
¿Falló el despliegue? Revertir y volver a desplegar. ¿Bug en producción? Aplicar un hotfix. ¿La compilación es lenta? Agregar más servidores de compilación.
Estas soluciones abordan el dolor inmediato. El problema desaparece... hasta que regresa. Porque no arreglaste lo que lo causó.
El análisis de causa raíz significa preguntar "¿por qué?" hasta encontrar la causa sistémica—aquello que, si se arregla, evitaría que el problema se repita.
El despliegue no falló por un fallo aleatorio. Falló porque el conjunto de pruebas es inestable. El conjunto de pruebas es inestable porque las pruebas comparten estado. Las pruebas comparten estado porque el framework de pruebas no se entendió cuando se configuró.
Arregla el síntoma inmediato (reintentar el despliegue) y volverás a intentarlo mañana. Arregla la causa raíz (corregir la comprensión del framework de pruebas) y los despliegues dejan de fallar.
El análisis de causa raíz toma más tiempo al principio. Pero ahorra exponencialmente más tiempo al prevenir la recurrencia.
El Peligro de las Soluciones Rápidas
Cada solución rápida que no aborda las causas raíz crea un patrón: el problema se repite, lo arreglas de nuevo, se vuelve 'normal'. Eventualmente tienes un sistema sostenido por soluciones temporales, donde los problemas reales son invisibles bajo capas de parches.
Los Cinco Por Qué es la técnica de causa raíz más simple: sigue preguntando "¿por qué?" hasta llegar a una causa raíz, usualmente alrededor de cinco iteraciones.
Ejemplo:
Problema: Producción estuvo caída durante 2 horas.
Causa raíz: Separación histórica de la configuración del código en el pipeline de despliegue.
Contramedida: Mover la configuración al mismo repositorio y pipeline de CI/CD que el código de la aplicación.
Trampas de los Cinco Por Qué:
Los Cinco Por Qué funcionan mejor como punto de partida, complementados con datos y múltiples perspectivas.
El diagrama de Ishikawa, también llamado espina de pescado o diagrama de causa-efecto, ayuda a explorar múltiples categorías de causas simultáneamente.
El problema es la "cabeza" del pez. Las categorías principales de causas son las "espinas". Las subcausas se ramifican de cada espina.
Categorías comunes (las 6 M):
Para software, podrías adaptar:
El diagrama ayuda a los equipos a hacer una lluvia de ideas de causas sistemáticamente en lugar de anclarse en la primera idea. Revela que los problemas usualmente tienen múltiples causas contribuyentes.
Combina Técnicas
Usa los Cinco Por Qué para profundizar en cada rama de la espina de pescado. La espina de pescado asegura que explores ampliamente; los Cinco Por Qué aseguran que explores profundamente. Juntos son poderosos.
Incidente: Falla de despliegue causó interrupción de 2 horas. Los Cinco Por Qué llevaron a: configuración no probada → configuración gestionada separadamente → decisión arquitectónica histórica. Espina de pescado reveló: tampoco había manual de despliegue (Proceso), ni proceso canary (Método). Se abordaron los tres.
Incidente: Falla de despliegue causó interrupción de 2 horas. Conclusión del post-mortem: 'El desarrollador debería haber tenido más cuidado'. Elemento de acción: 'Tener más cuidado la próxima vez'. El problema se repite dos semanas después con un desarrollador diferente.