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

  1. Siempre hay una explicación lógica en los sistemas

  2. Estar estancado es solo temporal, con persistencia y esfuerzo eventualmente el problema se resolverá

  3. Reconoce tus límites y pide ayuda a quien tenga más experiencia

  4. Prioriza los errores basados en su impacto y gravedad, algunos bugs no vale la pena arreglarlos

Al recibir un reporte de error

  1. Obtén la mayor cantidad de información posible para reproducir el problema
  2. Reproducir el problema es la mitad de la solución
  3. 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