Me la pasaba 'arreglando' bugs que no entendía
Antes celebraba cuando un bug desaparecía. Un problema me estaba atormentando, cambiaba algo, el problema se esfumaba, y sentía la cálida oleada de la victoria y seguía adelante. Me costó mucho tiempo y mucho dolor aprender que un bug que desaparece y un bug que se arregla son dos eventos completamente distintos — y que confundirlos estaba llenando silenciosamente mi sistema de problemas que no había resuelto en absoluto. Solo me los había ocultado a mí mismo.
Esta es una de esas lecciones que suenan obvias dichas con palabras llanas y que resultan endiabladamente difíciles de cumplir de verdad, porque todo en ese momento te empuja en la dirección equivocada.
La seducción del síntoma que se esfuma
Cuando un problema desaparece justo después de que cambias algo, cada instinto grita que lo arreglaste. El alivio es real, inmediato y químico. La presión por pasar a lo siguiente es enorme. ¿Quién quiere seguir hurgando en un problema que, hasta donde alcanzas a ver, ha dejado de ser un problema?
Pero aquí está la verdad incómoda escondida bajo ese alivio: que el síntoma se esfume solo demuestra que el síntoma se esfumó. No te dice nada — nada en absoluto — sobre si realmente atacaste la causa subyacente o si meramente la perturbaste lo suficiente para que se quedara callada por ahora. Esos dos resultados se ven idénticos en el momento. Se sienten idénticos. No son ni remotamente lo mismo.
Arreglos que no podía explicar
El patrón, en mi caso, era vergonzosamente común. Hacía un cambio — barajaba el orden de algunas operaciones, agregaba una guarda, ajustaba algo cercano — y el error dejaba de aparecer. Y si me hubieras detenido justo ahí y me hubieras pedido que explicara con precisión por qué mi cambio había resuelto el problema, no habría podido hacerlo. En realidad no lo sabía. Solo sabía que había tocado algo, y que la maldad se había quedado en silencio.
A eso lo llamaba arreglar. Pero no era depurar en absoluto. Estaba más cerca de hacer una ofrenda en un altar y notar que los dioses parecían, por el momento, apaciguados. Yo había cambiado algo, el universo había dejado de castigarme, y elegí interpretar la correlación como entendimiento. No era entendimiento. Era superstición con un mensaje de commit.
Un bug que no entiendes no está muerto — está escondido
El problema profundo de un arreglo que no puedes explicar es que no tienes idea de qué hiciste realmente. ¿Eliminaste el bug, o simplemente lo moviste a algún lugar que ahora mismo no puedes ver? Genuinamente no lo sabes, y esa incertidumbre no es inofensiva. Porque si la causa sigue ahí, intacta, va a volver. Resurgirá más adelante, con otro disfraz, en algún otro rincón del sistema, muy posiblemente uno peor — y cuando lo haga, no tendrás ningún recuerdo de que es el mismo enemigo que creías haber derrotado meses atrás.
Esto es lo que más subestimé. Los arreglos inexplicados no reducen en realidad la cantidad de bugs en un sistema. Los reubican, y te despojan del conocimiento que te permitiría reconocerlos de nuevo. No estás ganando la pelea. Solo estás dispersando al mismo oponente en distintos disfraces.
La casa embrujada que construyes poco a poco
Con el tiempo suficiente, un sistema mantenido de esta manera se llena de cambios que nadie, incluido su autor, entiende realmente. Una guarda agregada “porque sin ella se rompía”. Un orden preservado por nada más que miedo. Pequeños rituales cuyo propósito original se ha olvidado por completo, pero que ahora todos están demasiado nerviosos para quitar.
El código se vuelve gradualmente una casa embrujada de supersticiones — llena de cosas que no tocas porque no estás seguro de qué están sosteniendo. Y la parte más cruel es lo que esto le hace a tu capacidad de cambiar cualquier cosa. Cuando no sabes qué es estructural y qué es decorativo, no puedes moverte con confianza en absoluto. Cada cambio se vuelve una apuesta contra fuerzas que no entiendes, dentro de una estructura que construiste pero que ya no comprendes.
La disciplina: no confíes en un arreglo que no puedes explicar
La regla que finalmente me impuse es simple de enunciar y genuinamente difícil de mantener: un problema no está arreglado hasta que puedo explicar tanto por qué ocurrió como por qué mi cambio ataca esa causa. Ambas mitades. Si el síntoma se ha esfumado pero no puedo contar esa historia completa, entonces no he arreglado nada — meramente he perdido de vista el problema, lo cual es un estado mucho más peligroso que un problema que todavía puedo ver.
Esto es más lento. Es constantemente tentador saltárselo, y la tentación es más fuerte exactamente en el peor momento: cuando el síntoma ya desapareció y todo se ve bien y el trabajo parece, por todas las señales visibles, estar hecho. Ese es precisamente el momento en que la disciplina más importa, y precisamente cuando se siente más innecesaria. Mirarle los dientes a un arreglo regalado es antinatural. También es el trabajo entero.
Por qué esto importa aún más en un dominio ruidoso
Hay una razón por la que esta trampa es especialmente perversa en un dominio como este. El entorno es intensamente ruidoso, lo que significa que te entrega confirmación falsa constantemente. Haces un cambio, la siguiente corrida se ve mejor — ¿pero fue el cambio, o fue solo suerte? En un sistema donde los resultados oscilan por sí solos, “mejoró después de que hice X” es una evidencia desesperadamente débil de que X haya hecho algo en absoluto.
La superstición prospera precisamente donde los resultados son ruidosos, porque el ruido sigue recompensando rituales aleatorios con la frecuencia justa para hacerlos sentir reales. La misma aleatoriedad que hace que todo sea difícil de evaluar también hace peligrosamente fácil creer en arreglos que no hicieron nada, porque cada tanto los dados caen a tu favor justo después de tu gesto sin sentido, y tu cerebro registra ansiosamente una causa.
La lección más profunda: el entendimiento es el único arreglo real
A lo que finalmente llegué a creer es que el único arreglo duradero es uno que entiendes hasta el fondo, hasta su causa. Todo lo demás es pedir prestado contra el futuro. El bug que tapaste sin comprenderlo no se va; se queda callado, y el préstamo vence más tarde, con intereses, en un momento en que has olvidado por completo que alguna vez lo pediste.
Así que ahora, cuando algo empieza a funcionar y no sé por qué, me he entrenado para no sentir alivio. Intento sentir sospecha en su lugar. Un éxito inexplicado no es una victoria; es un misterio sin resolver que resulta estar vestido con la ropa de la victoria, y tratarlo como lo primero es una de las maneras más confiables que conozco de ser emboscado por tu propio yo del pasado.
— Sin señales, sin retornos, no es asesoría de inversión.