Hay una escena que todo desarrollador conoce: llevas horas mirando una función que "debería funcionar". Revisas la lógica, los tipos, los datos. Nada tiene sentido hasta que, de repente, ves el error — casi siempre algo pequeño, casi siempre algo que estaba ahí desde el principio, escondido a plena vista.
Con el tiempo empecé a notar que ese proceso no era exclusivo del código.
Depurar un programa y depurar una creencia rota siguen la misma secuencia, aunque nadie las ponga una al lado de la otra:
Primero, negación. El programa "debería" funcionar según la lógica que armaste. Igual que uno cree que su forma de pensar "debería" ser correcta simplemente porque siempre ha sido así.
Segundo, aislamiento del problema. Un buen desarrollador no revisa todo el sistema a la vez — aísla el módulo, comenta bloques, reduce el caso hasta encontrar la línea exacta. Con una creencia pasa igual: hace falta aislar el pensamiento específico, no atacar "toda tu forma de ser" de golpe.
Tercero, el error casi nunca está donde lo buscabas. Uno sospecha de la parte compleja del código y el bug está en una línea trivial que se dio por sentada. Las creencias que más nos limitan tampoco suelen ser las dramáticas — son los supuestos pequeños y no cuestionados los que arrastran errores grandes.
Cuarto, arreglarlo no es el final; es entender por qué pasó. Un desarrollador junior arregla el síntoma. Uno con experiencia entiende la causa para que no se repita en otro lugar del sistema. Lo mismo aplica a cualquier patrón de pensamiento que uno decide cambiar.
No escribo esto como metáfora bonita. Lo escribo porque llevo años viviendo entre ambos mundos — el código y la introspección — y cada vez me convence más que son el mismo ejercicio con distinto lenguaje: mirar de frente algo que no funciona, con la paciencia de no arreglarlo a medias.
Este es el primer post de lo que quiero que sea una línea constante aquí: cruzar desarrollo de software con reflexión personal, sin quedarme solo en lo técnico ni solo en lo filosófico.