Debo decir de entrada que no soy supersticioso. Lo quiero dejar en claro antes de explicar la siguiente teoría que para muchos será, sin lugar a dudas, una superstición: Todos los días, cuando me enfilo rumbo al trabajo, extrapolo cada uno de los pequeños acontecimientos para intentar imaginar como será mi día. Encontrar obstáculos en el camino simboliza que los toparé durante la jornada laboral. Por ejemplo, si no tengo que esperar a que cambien los semáforos, ni a que dejen de circular los autos, quiere decir que será un día sin obstáculos. Ver una liebre o una ardilla en el parque tiene una connotación positiva, algo así como que tendré una agradable sorpresa. Por otro lado, lo peor que me pueda pasar es que tenga que bajar los pies de los pedales de la bicicleta y quedar en alto total. Por eso siempre trato de mantenerme en movimiento, aunque sea en una dirección diferente de la que llevo.
Ayer, cuando iba en marcha al trabajo, un tranvía me bloqueó el paso y me ví obligado a frenar por completo. Asi pues, para evitar el tan temido toque de tierra, permanecí haciendo equilibrio circense en la bicicleta por un par de segundos. Justo en el momento en que pareciera desplomarme, el tranvía franqueó el paso, y tomé impulso con la inercia de la hasta entonces inminente caída. Mas adelante tuve que esperar unos instantes para poder rebasar a un señor en bicicleta, por que venían otros ciclistas en sentido opuesto. Por si fuera poco, en la última calle que tenía por cruzar, tuve que de plano bajar los pies y esperar a que pasara una larga caravana de vehículos ¡qué rabia! Mientras pensaba en mi teoría y trataba de imaginar lo que me deparaba la jornada después de encontrar tantos obstáculos, traté de convencerme que esa teoría era tan solo una superstición. «Tendrás un magnífico día» repetí en voz alta. El colofón de mi travesía fue el tener que buscar un lugar para aparcar la bicicleta por varios minutos. Cerrando el candado me ensucié las manos de grasa. ¡Qué clase de augurio!
En contraste el inicio de la semana había sido prometedor. El sistema que diseñamos (software y hardware) funcionó por primera vez en una configuración especial, convirtiéndose en algo único en su tipo. No existe pues ningún otro sistema sobre la tierra con esas características. Además ese acontecimiento coincidió con la visita de Steve Pawlowski, personaje emblemático de la firma y promotor del HPC (High Performance Computing). Se degustaba ya entonces una feliz oportunidad para hacer gala de los grandes avances alcanzados, pero …..
Entré al edificio con tranquilidad, todavía limpiándome la grasa de la bicicleta de las manos con una servilleta, mientras trataba de convencerme que lo que me sucedió en el camino no tenía relación alguna con lo que pasaría, y que el día sería magnífico. Había razones fundadas para que fuese así. Mi última contribución al sistema, el módulo Y, había sido alabado por todos los miembros del equipo al presentarlo un día antes. Sería entonces todo un placer poderlo mostrar personalmente a Steve.
En el pasillo me encontré a Elmar. Un día antes me había pedido que lo acompañara para hacer la presentación juntos, sobre todo por si hubiese preguntas sobre el módulo Y, y sería la primicia fuera de nuestro equipo del sistema. Sin decirme buenos días siquiera, sus primeras palabras, marinadas en un tono de angustia, fueron: «El módulo Y no funciona, ¿cambiaste algo?» en ese momento tuve la misma sensación que cuando el tranvía me bloqueó el paso.
Tragué saliva y desacredité sus palabras. Simplemente no era posible. Elmar no sólo había estado presente en el technical meeting, si no que el mismo había hecho varias piruetas de malabarista con el módulo Y para asegurar que funcionaba. Quzá sólo era algo que tuviese que ver con su entorno de trabajo, así que ya en mi escritorio probé el módulo en cuestión. Todo funcionaba exactamente como el día anterior. Por suerte no había perdido el equilibrio, y sin ningún tranvía cortándome el paso fuí con Elmar a que me mostrara la supuesta falla.
Elmar tenía razón. Su sistema había ejecutado mas de 4,000,000,000 ciclos de reloj y el módulo Y había dejado de funcionar misteriosamente. No uso corbata, pero de hacerlo me hubiera aflojado el nudo, y me dispuse a emprender una expedición de caza. El objetivo era erradicar el bug responsable del problema. Hoy en día, los errores en hardware o software son llamados de esa manera, por que en tiempos de las legendarias computadoras de bulbos como el ENIAC e incluso el UNIVAC, el calor que éstos desprendian atraía a los bugs (insectos), quienes al morir electrocutados causaban corto-circuitos y por ende fallas de funcionamiento en el sistema. Así pues, para corregir el comportamiento del sistema, había que encontrar y retirar los insectos. En la actualidad, ésta noble actividad es conocida como debugging.
Los últimos días los había consagrado a despiojar el mentado módulo Y, por ello me irritaba saber que algún insecto me hubiese pasado desapercibido y se columpiara en algún alambre, y tomando un cocktail se burlaba de mí. Para corregir la falla, tenía que correr simulaciones por algunas horas y luego alcanzar los 4 mil millones de ciclos de reloj en el sistema, todo ello antes de las 17:15 hrs, que sería el momento de la verdad. A las 17:10 encontré lo que parecía causar el problema, y ya sin tiempo para probar, registre los cambios, me puse la bata y salí corriendo para el laboratorio.
En el laboratorio estaban Elmar y Gregor muy tranquilos y relajados ya con todo el sistema en marcha. Gregor tenía una sonrisa de oreja a oreja que con sus mas de 2 metros de estatura lo convertía en un gigante bonachón. Elmar me informó que el módulo Y funcionaba de maravilla, y se rehusaron a escucharme. Por aquella máxima de «no compongas lo que todavía funciona» dejé de insistir. Después de 30 minutos de agonizante espera, llegó Steve escoltado por todos los directivos, entre ellos mi jefe, que querían presenciar la Premiere mundial. Steve tomo el palco de lujo. Con su excelente dicción y gran agilidad al hablar, Elmar presentó nuestro trabajo. Desde la charla que Steve había dado una hora antes, me había percatado que es un personaje poco expresivo. Por suerte la atención de todos se centraba en lo que hacía Elmar y nadie notó mi cara de angustia cuándo él presionó el botón que mostraba los resultados del módulo Y. ¡Ahí estaban! ¡No daba crédito! ¡Casí grito y empiezo a saltar de júbilo! Las expresiones de asombro y las palabras de felicitación para el equipo me contuvieron de hacerlo. Todos los directivos se agolparon sobre el monitor para ver los resultados y reverenciar el sistema. Minutos mas tarde el grupo había dejado el laboratorio. Solamente quedamos Elmar, yo y nuestra gran sonrisa de satisfacción. El jefe de mi jefe regresó al laboratorio para extendernos la mano y felicitarnos personalmente.
Ya en calma y sin presión hicimos otra prueba. ¡El módulo Y no funcionó! Sólo el pensar que eso pudo haber pasado durante la presentación nos provocó angustia de nuevo. Mas tarde encontré al insecto responsable del problema columpiándose muy campante, no en el módulo Y, si no en el módulo F. Ese engreído bellaco convertía una variable de 64 bits a otra de 32 bits y luego se la daba muy ufano al módulo Y como si fuera una de 64 bits. Así pues, al exceder el sistema el límite de 4,294,967,295 ciclos de reloj, dejaba de funcionar. Si hubiésemos hecho una prueba más antes de la presentación eso habría ocurrido y hubiese terminado todo en una penosa catástrofe.
¿Verdad que no es superstición mi teoría de los obstáculos?
extraodrinario!
Antes que nada, muchas felicidades por obtener resultados tan positivos de tu trabajo. Espero que se repitan indefinidamente en tu futuro… =)
Y como todos los días se aprende algo nuevo, yo lo acabo de aprender con lo de los bugs! Es algo bastante obvio, ahora que lo expolicas, pero nunca lo había pensado, jejej… Saludos L!