Diría que es esencial comprender cada detalle sobre por qué se produjeron algunos errores y por qué ciertos cambios eliminaron esos errores, y también es común entre los desarrolladores a veces hacer que el programa funcione sin saber realmente los detalles sobre por qué funcionó la solución.
El arte de cambiar las cosas hasta que un error desaparece, sin entender qué lo causó o por qué el cambio lo solucionó, a menudo se llama "programación vudú", y no es un cumplido. Realmente no hay forma de que pueda estar seguro de que ha solucionado genuinamente un error, en lugar de corregirlo parcialmente para el caso particular que estaba investigando, si no comprende qué lo causó.
En el peor de los casos, no ha hecho nada más que mover el error: recuerdo de la computación del primer año en la universidad, cuando muchos estudiantes estaban aprendiendo C y punteros por primera vez, los errores de puntero a menudo dejaban de manifestarse cuando cambiaban las cosas. aleatoriamente, porque los cambios reorganizarían las estructuras de datos en la memoria lo suficiente como para hacer que el error del puntero pisotee un bit de memoria diferente. Obviamente eso no ha ayudado en absoluto .
Pero dicho esto, las realidades comerciales de la programación son a menudo tales que satisfacer al cliente de que se solucionó un error es más importante que satisfacerse a sí mismo. Nunca recomendaría que declarara algo arreglado si no tenía idea de qué lo causó, pero si puede ver que algún código fue problemático y lo modificó, incluso si no está "100% seguro" de cómo eso causó el problema específico error para manifestarse, a veces solo tiene que pasar al siguiente error antes de que el cliente grite demasiado fuerte sobre su lento progreso.