Resolver bugs de esos de “dejo de funcionar y no tuvo cambios” o peor tantito “casi siempre funciona pero a veces falla” es retador y puede llegar a ser frustrante.
Al respecto, hace un par de semanas vi este video de Alex Xu @alexxubyte que recibí en su boletín ByteByteGo blog.bytebytego.com y me gusto mucho. youtube.com/watch?v=J8uAiZ…
Me hizo sentido porque va directo al grano y se enfoca en las bases para depurar y resolver errores en sistemas. A manera de ensayo personal, les comparto los puntos que me parecen clave:
Partir con la mentalidad correcta
Siempre hay una explicación lógica en los sistemas
Estar estancado es solo temporal, con persistencia y esfuerzo eventualmente el problema se resolverá
Reconoce tus límites y pide ayuda a quien tenga más experiencia
Prioriza los errores basados en su impacto y gravedad, algunos bugs no vale la pena arreglarlos
Al recibir un reporte de error
- Obtén la mayor cantidad de información posible para reproducir el problema
- Reproducir el problema es la mitad de la solución
- Construye un cronograma de eventos, todo tipo de herramientas son validas: print statements, logs, debuggers, etc
Si no puedes reproducir el error
- Algunos bugs solo se manifiestan en producción porque dependen del contexto y/o ambiente
- Combina todos los logs disponibles
- Sigue la ruta completa de la request
- Construye una teoría, coloca logs para comprobarla y repite el ciclo hasta solucionar el problema
- Se requiere bastante paciencia y la persistencia es clave
Si estás bloqueado
- Haz una pausa (déjalo para el día siguiente, da un paseo, haz ejercicio, o aborda otra tarea)
- Habla del problema, con personas reales, imaginarias o el “patito de hule”
- Pide ayuda, una perspectiva diferente puede revelar diferentes soluciones