Mucha magia, incluso demasiada

Temas: Personal
Juan Mellado, 27 Febrero, 2011 - 15:39

Este mes lo he pasado bastante liado en el trabajo por culpa del proyecto que estamos desarrollando ahora mismo, en una especie de crunch mode tecnológico. No por el típico problema de mala planificación, sino por el también típico problema de tener que aplicar tecnologías con las que no se tiene ninguna experiencia previa en un proyecto real. Y es que si un cliente te impone que utilices su framework de desarrollo, sólo queda una cosa por hacer: empezar a leer documentación como un poseso para tratar de parecer medianamente inteligente en un tiempo razonablemente corto de tiempo.

Dicen que los "informáticos" (nunca me ha gustado esta palabra, no sé muy bien porqué) somos bastantes reacios al cambio. La expresión aquella de "si funciona... ¡no lo toques!" está muy arraigada. Pero una cosa es ser pragmático, tener claro de donde sale el dinero que paga el alquiler, y otra cosa manifestar una clara debilidad de espíritu, vivir acomodados en la "rutina" de un proyecto y unas prácticas que no han cambiado durante años.

Quizás sea un tanto obsesivo, a la par que un pésimo jugador de equipo, pero estos últimos días ando con la mosca detrás de la oreja. Más de lo habitual. Quizás influido por el hecho de que muchos países parecen estar viviendo en estas fechas momentos históricos, envueltos en revoluciones, cambiando su forma de hacer las cosas, conformando un nuevo mundo. Tal vez su nueva "rutina", de acuerdo, pero por un motivo u otro lo están haciendo.

Yo no le pido a nadie que se juegue la vida por una causa, sólo que revise un par de líneas de código. "No sé, eso estaba ya así hecho", "Es un copy paste de otra ventana", o mi favorita: "¡Pero si el código no lo va a mirar nadie!", son respuestas clásicas. ¡Ya está otra vez el pesado de Juan revisando el código! Debe ser cosa de la edad, pero cuando un programador te dice que el código fuente no importa, lo que a mi me parece que transmite es la idea de que su trabajo no importa. Y por ende el mío, que es el mismo que el suyo. Y por ese aro si que no paso. Así de claro.

Cuando uno prevé pasar una parte importante de su vida manteniendo y evolucionando un código que está escribiendo, lo que no debería hacer es tratarlo como el polvo que se esconde debajo de la alfombra. Algunos proyectos pueden requerir codificar casi de cualquier forma a la máxima velocidad posible, y los errores en producción hay que arreglarlos de la mejor forma posible en el menor tiempo posible. Eso lo tenemos claro todos. Pero este no es el caso.

Las tecnologías implicadas en los desarrollos actuales son tantas y tan diversas que resulta imposible conocer el detalle de todas ellas. A lo más que podemos aspirar es a tener una visión global de conjunto, a tratar de comprender como está realizado el reparto de responsabilidades. Sobre todo cuando nunca has trabajado anteriormente con ellas. No podemos conocer todas las partes, pero si deberíamos tratar de conocer al menos la parte que nos toca.

He visto programadores bramar por culpa de un error en una librería de terceros, pero restar importancia a un error en su código. Y no es que fueran malas personas muy pagadas de si mismo, sólo que a veces tengo la impresión de que algunos piensan que los programas de propósito general como sistemas operativos, base de datos o compiladores los desarrollan otro tipo de personas, no programadores como ellos, ¿tal vez magos? (En mi inocencia, siempre había tenido la falsa impresión de que la generalización de los grandes proyectos de código abierto cambiarían esa actitud)

¿Han trabajado alguna vez con un producto que haga magia? Yo lo hago continuamente. Es más, buena parte de mi vida la paso interaccionando continuamente con aparatos mágicos. Pulso un interruptor y se enciende una luz. Abro un grifo y sale agua. No tengo muy claro por qué, pero sucede. Puede que ni lo sepa ni me importe. Puede que sienta curiosidad, pero por lo general sospecho que no dedicaré demasiado tiempo en pensar en ello, ni en averiguar los detalles precisos. No desmontaré el mecanismo. No analizaré los materiales. No estudiaré la física o química del suceso. Me conformo con vivir en la ignorancia de los detalles de las cosas cotidianas a las que estoy acostumbrado.

En Informática hay que tener también esa actitud. Pero no siempre. Tampoco se trata de obcecarse con la tecnología, que normalmente debe ser el medio, no el fin en si mismo. Pero tampoco se puede confiar continuamente en la magia, ni en los magos.

Recuerdo que tenía un compañero de trabajo que siempre me preguntaba como hacer tal o cual cosa, normalmente algo que se salía de los parámetros habituales y no formaba parte de las tres o cuatro cosas que solíamos hacer de forma rutinaria con la herramienta de desarrollo que utilizábamos en aquella época. A veces sabía la respuesta, otras veces no, pero normalmente me llevaba poco tiempo encontrar la solución. Yo parecía conocer siempre la "magia" que solucionaba el problema. Por supuesto la realidad era mucho más simple. Mi respuesta era indefectiblemente siempre la misma: "Utiliza el método tal de la clase cual, ... viene explicado en la documentación del SDK". Después de un tiempo (largo) entendió que yo no hacía magia, sólo me limitaba a leer la documentación.

¿No encontró lo que buscaba?

Utilice el buscador para encontrar más páginas en esta web o en toda Internet.
 
Web www.inmensia.com