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!"