Trouble Shooting Guide¶
Como Arreglar un problema cuando no encontramos el issue en producción?¶
"The problem is not the problem, but your attitude about the problem"
Qué hacemos cuando llega un issue?¶
- Hablar con el cliente o el PM para planificar cuando se va a resolver
- Si se resuelve ahora, guardar/documentar lo que dejaste de hacer para retomarlo luego
Qué hacemos para encontrar el problema?¶
- Verificar que existan las cosas y juntar/pedir todas las cosas que necesitas para verificar/arreglar
- Verificar que realmente hay un bug y no es un malentendido o están pidiendo una feature
- Revisar el entorno
- Esta deployada la version correcta?
- Esta bien la configuración del ambiente?
- El ambiente debe ser igual al de pruebas
- "Logguear hasta cuando respiran", "Logguear con calidad, que realmente sean útiles", logguear todo para poder encontrar los bugs, loggear excesivamente
- Lo único que no se logguea es información sensible del usuario.
- Siempre dejar los logs, nunca sacarlos para optimizar, busca optimizar de otra manera
- Loguear Trazas por usuario o requests, para entender el hilo de ejecución
- Buscar cosas simples, "Cuando veo un animal que camina como un gato, salta como un gato y suena como un gato, es un gato
>.<
", es mas probable que sea eso a otra cosa, no te vuelvas loco.
El 80% de los bugs en general son problemas de entorno y son cosas simples
Como lo resolvemos??¶
- Armar hipótesis en base a lo que encontramos, hablarla con alguien para que te critique y la pre-valide, después volvés a verificar la hipótesis.
- Tratar de reproducir un nuevo escenario (No el mismo) basándote en la misma hipótesis para verificarla definitivamente.
- Nunca pruebes en Producción, mucho menos si las pruebas tienen efecto colaterales/cambios de estados
- Siempre probar primero en Develop,
- Si es necesario probar en Staging porque no podes reproducir en Develop, hace un backup antes de probar
- Si no queda otra, backup Producción y probar en Producción lo mas cuidadoso con alguien que haga de QA/QC del proceso
Como evitamos que vuelva a ocurrir??¶
- Generar un test (idealmente automatizado: unit/integration test) o caso de prueba para el futuro
- Explicar a Otro que paso y Documentar, compartir el conocimiento para que no vuelva a pasar este issue.
- Documentar usando columnas:
Síntoma | Como Diagnosticar | Descripción del Bug | Como se Resuelve |
---|---|---|---|