26/3/12

La complicación de lo simple


     Los grandes problemas, al menos en informática, suelen tener origen en la más insignificantes tonterías. Esto no es más que una teoría que, a estas alturas, debería tomarse como una ley porque nunca falla (al menos, a día de hoy, aún no he visto la excepción que lo confirme).
     El nuevo y flamante fichaje (Suri) es, al menos en teoría, un experto en desarrollo web. Conoce una interminable lista de lenguajes y es especialista en PHP (esto, visto lo visto, es pura teoría).
     Hace cosa de 2 semanas recibimos una incidencia en una página que había hecho yo. Como estábamos un poco liados terminando una aplicación, Yolosé le encargó a Suri la sencilla misión de arreglar la página. Como la había hecho yo me ordenó que le explicase por encima cómo funcionaba.
     Siguiendo las órdenes de Yolosé, le expliqué a Suri cómo estaba organizado el código y le pasé el esquema de la base de datos (no le iba a hacer falta, pero seguro que le viene bien para el futuro). Para facilitarle más las cosas le dije en qué archivo estaba el fallo que tenía que arreglar.
     Después de 10 minutos explicando a fondo el funcionamiento de un botijo decidí que era el momento adecuado para dejar que el pequeño pajarillo saltase del nido e intentase volar. Volví a mi puesto y continué haciendo un par de módulos "para ayer".
     Era una mañana de paz y tranquilidad. No había ruído alguno que molestase (cosa tremendamente extraña). Creo que Gothmog tenía un buen día porque lo único que dijo a todo el mundo a lo largo de la mañana fue "buenos días" y lo hizo con una voz digna de un ser humano. Yolosé estaba enfrascado en una acalorada discusión interior con el compilador. Yo estaba con mi gran amigo Google buscando unos códigos de error que no había visto en mi corta vida y las descripciones que daba el compilador eran serias candidatas a aparecer en un libro de criptografía avanzada. Suri, en cambio, estaba dando saltos de alegría; por fin le habían dado un trabajo con el que se sentía realmente cómodo y sonreía.
     El tiempo pasaba y el trabajo iba viento en popa. Un par de llamadas telefónicas le devolvieron a Gothmog su mal humor habitual así que la tranquilidad duró poco. Sin embargo, mi paz interior seguía intacta.
        - Cobolero, estoy cambiando un método de la clase Producto y... - mi paz interior también duró poco.
        - Antes de que sigas: ¿por qué has tocado una clase que funciona y que no tiene nada que ver con lo que tienes que arreglar? - Yolosé se pone alerta y decide intervenir.
        - Suri, haz el favor de hacer sólo lo que se te dijo que no estamos para perder el tiempo.
        - ¡Pero esto está mal! - me levanto y voy a su sitio.
        - Bueno, dime. ¿Qué es lo que está mal? - me señala el método get_id().
        - Hombre, ese método funciona. De hecho se suele usar cuando se hacen los pedidos y nadie se ha quejado nunca de que le llega lo que no ha pedido.
        - Ya, pero yo también quiero que me devuelva el nombre y el precio.
 

        - Para eso están las funciones get_nombre() y get_precio().
        - Ya, pero si le meto todo aquí y devuelvo un string... - no le dejo continuar.
        - ...tendrías que arreglar todas las funciones donde aparezca ese get_id() o la aplicación se va a la mierda. - Suri se queda mirando para la pantalla mientras procesa la información. Parece que se ha convencido.
        - Venga anda, termina esto llevan más de una hora parados y ya debería estar.
     Después de explicarle a un experto por qué no es buena idea devolver algo más que la id en un get_id() decidí que era buen momento para ir a tomarme un cafecillo. Pregunté a mis compañeros si querían que les subiese algo. Todos rechazaron el ofrecimiento salvo Gothmog que me pidió un bocata de corazón humano. Una flecha orca clavada en la pared a escasos centímetros de mi cabeza me convenció de que no había sido buena idea decirle que ya no se vendían.
     Cuando volví de la cafetería noté que el ambiente estaba un poco tenso. Pensé que Gothmog le habría intentado arrancar el corazón a Suri. Como nadie me dijo nada seguí a lo mío.
     Los días fueron pasando. Yolosé y yo nos quitamos de encima los marrones "para ayer" y, como nos aburríamos, mi estimado jefe decidió que era hora de cambiar el aspecto de una aplicación entera. Esto no es un cambio difícil, pero sí muy tedioso. Se decidió que el honor de efectuar dichos cambios debía recaer sobre mi persona.
     Después de un par de días realizando el trabajo casi más aburrido de la historia (sigue de cerca a observar una pared mientras se seca la pintura) Yolosé le preguntó a Suri en qué estaba trabajando. La respuesta fue un como un bofetón con un bloque de cemento:
        - Sigo con lo de la web. - Yolosé y yo tuvimos la misma reacción:
 

        - ¿PERO AÚN SIGUES CON ESA MIERDA? - la cara de mi amado jefe era un poema. El odio que emanaban sus ojos era comparable al de Gothmog después de 1000 días sin probar la carne humana.
        - Si, es que es muy difícil. ¡De verdad! - Suri intentaba poner cara de cordero degollado en un intento de ablandar el corazón de Yolosé. A simple vista parece que lo consiguió.
        - Mira, siéntate al lado de Cobolero y que te diga cómo se hace. Cobolero, esto tiene que estar hoy y sin excusa alguna. - Suri se acerca apesadumbrado a mi mesa, coge una silla y se sienta.
        - Todo por la horda...Suri, atiende. - entro en el servidor, descargo la última copia de seguridad (miedo me da lo que haya tocado este hombre), busco el archivo a modificar y lo abro. Busco la línea apropiada y golpeo varias veces Enter.
     Suri está muy atento a todo lo que hago. También existe la opción de que sepa disimular muy bien y tenga bien entrenada la cara de concentración. Para salir de dudas no dejo de mirar su cara por el rabillo del ojo mientras voy tecleando.
     Pongo el cursor en el hueco que había hecho previamente y empiezo a escribir: if((empty($i) || ($i==0 )) { blabla; blabla; bla; }. Guardo. Los ojos de Suri empiezan a abrirse de tal modo que empieza a parecerse más a un dibujo de comic que a una persona. Hago una prueba. Funciona. En la boca de Suri podría aparcar un camión. Hablo disimuladamente con el.
        - Oye tío, ¿dónde estabas tocando?
        - Yo...es que...
        - Tranquilo hombre, que no voy a decir nada.
     Me empezó a relatar su lista de cambios. Nada menos que 2 clases nuevas, 8 funciones a mayores y cambios en 3 clases existentes. A esto, en algunos círculos, se le llama hinjenieria habanzada.
        - Oye Suri, si te dije dónde hacer el cambio debiste hacerme caso. Y si tienes dudas pregunta.
        - Pero yo creía que lo estaba haciendo bien...
        - Hombre, todo el trabajo que hiciste y que no funciona lo suplí por 5 líneas...y funciona.
     Suri está perplejo. No entiende que reinventar la rueda es una tontería. Yolosé lo saca de su ensimismamiento para darle una gran noticia.
        - Suri, ahora vas a terminar lo que está haciendo Cobolero. Cuando termines hay 2 aplicaciones más a las que hay que cambiarles el aspecto. Cobolero, explícale cómo se hace.
     Todavía escucho a la voz interior de Suri gritando "¡NOOOOOOOOOOOOOOOOOOOO!"

No hay comentarios:

Publicar un comentario