Saturday, November 25, 2017

Un método básico para encontrar la razón de los problemas

Muchas veces, especialmente cuando escribo código, me encuentro con problemas que no puedo explicar, y por lo tanto, no puedo corregir.
Como todo el mundo, tengo mi propio método para abordarlos, porque muchas veces encontrar la razón puede consumir horas de frustración.
A continuación algunas de las ideas que aplico:
  1. Puedo explicar por qué falla? Si la respuesta es afirmativa, ya no necesito continuar :)
  2. Puedo repetir el problema u ocurre erraticamente. En el segundo caso, muy posiblemente se deba a problemas de hilos de ejecución, o datos externos, por ejemplo una base de datos que está siendo actualizada constantemente. Si es el primer caso, puedo continuar con la lista. Si es el segundo, tengo que poner logs por todos lados para capturar el problema la siguiente vez que ocurra.
  3. Aislar el problema: si hay varios componente, intentar probarlos por separado para encontrar si el problema está en uno de ellos o en la interacción de dos o más (estos últimos suelen ser los más complejos de resolver)
  4. Encontré el lugar donde está el problema, pero no puedo explicarlo. Es un problema que cabo de introducir ¿Funciona una versión anterior? ¿Funciona en otras circunstancias, como puede ser cambiando el navegador, versiones de componentes externos, parámetros de compilación: por ejemplo entre versiones de debugging y productivas?
  5. Estoy asumiendo que algo en particular no es la causa del problema y la busco en otro lado? No hacerlo: demostrarme que no estoy equivocado probando eso que asumo que no falla pasa un test.
  6. ¿Encontré la razón del problema? ¡Documentarlo! Ayudar a mi futuro yo a no tener que pasar por el mismo proceso exploratorio si me encuentro con el mismo problema dentro de un tiempo.

No comments: