29
Sep

El Macguffin informático

hitchcock3El macguffin, expresión acuñada por el maestro Hitchcock, es un recurso narrativo, un disparador, una excusa que permite, que consigue que la trama avance pero que no tiene importancia por sí misma. Un ejemplo actual de macguffin es el maletín que persiguen Travolta y Samuel L. Jackson en Pulp Fiction. Motiva a los personajes, permite que la historia se desarrolle pero, realmente, no tiene importancia dentro de la misma.

Bien ¿Y qué tiene que ver todo esto con el desarrollo de software? Aunque nosotros no lo sepamos, también tenemos nuestros propios macguffins y, desgraciadamente, a veces cobran excesiva importancia convirtiéndose en los verdaderos protagonistas de la trama.

Aunque a veces lo olvidemos, en nuestra profesión, la tecnología no es más que un puro y duro macguffin que no nos puede distraer del verdadero objetivo, del protagonista: el cliente/usuario que demanda aplicaciones para usarlas.

He comprobado que la mayoría de los desarrolladores quedamos cegados por tal o cual tecnología y que tendemos a utilizarlas sin ton ni son, sin preguntarnos si realmente aportan algo al cliente. El que esté libre de culpa que tire la primera piedra. ¿Alguien recuerda la “moda de los EJBs” que sacudió el desarrollo en java entre el 2001 y el 2004? Parecía que, si hacías una aplicación “seria”, si querías estar a la última tenías que utilizarlos si o si. Los EJBs molaban y empezamos a utilizarlos por todos lados. Y sí, eran distribuidos y transaccionales y ¡Oh, Dios Mío! eran compatibles con CORBA. Así que nada, a incrustarlos en nuestra arquitectura, pero ¿REALMENTE necesitábamos EJBs? La respuesta es no, al menos en mi caso.

Me he pasado la mayoría de mi carrera metido en proyectos grandes, lo que llamamos aplicaciones empresariales. Desde un Gestor de Contenidos a un ERP, pasando por la pasarela de pago electrónico del BBVA, y en mi vida he visto una aplicación usando EJBs distribuidos en varias máquinas. Ojo, no quiero decir que no sea útil -o incluso necesario- en algunas ocasiones, pero yo no lo he visto.

Los EJBs están muy bien pero, hoy por hoy y hasta que veamos la distribución lite de la versión 3.1, te hacen pagar caro su uso: te olvidas de utilizar a tu viejo amigo Tomcat y buscas nuevas amistades con gente como Glassfish, Geronimo o JBoss, sólo para descubrir que tardan en arrancan 4 veces más y que, cuando modificas una clase mientras depuras con tu IDE… ¡Ay, como te empiece a redesplegar todo el contexto de tus EJBs!

En definitiva, añadir los EJBs hace más pesada y compleja nuestra arquitectura. Si los utilizamos sin que sea estrictamente necesario, ¿no estamos haciendo que nuestro macguffin sea el protagonista de la película? La tecnología debe ser un medio para conseguir un fin, no el fin en sí mismo.

Sí, lo reconozco, es difícil llegar a un sitio donde utilizan Struts 1 para hacer algo nuevo y no querer meter con calzador Struts 2, Spring MVC o cualquier otra cosa pero, si realmente podemos solucionar de manera eficiente y económica el problema con Struts 1, ¿por qué vamos a complicar la arquitectura de nuestro cliente? ¿Realmente vamos a ayudarlo?

El uso de los macguffins informáticos alcanza su máximo nivel en el caso de los tecnólogos irredentos que ni saben ni quieren saber nada del dominio funcional del cliente. “Yo soy informático, no tengo porqué saber nada de nominas/logística/contabilidad/ventas” es una frase que he oído más de una vez. Puede que hasta yo mismo la haya pronunciado :) pero, ¿qué queréis?, todo el mundo tiene sus pecados de juventud… Y es verdad, no hace falta saber de nada que no sea informática para ser informático pero sí para ser un buen informático. Si no tienes ni idea de lo que necesita el cliente, ni de lo que ha utilizado antes que tu llegaras, ni averiguas porqué lo ha utilizado ni reflexionas sobre como podrías mejorarlo, tienes muchas posibilidades de conseguir que la importancia de tus macguffins empiece a crecer. Ejemplo, nadie que haya visto a un administrativo capturar datos a la velocidad de la luz -creedme, a veces no se les ven ni los dedos de lo rápido que van- se le ocurre crearles una interfaz en un navegador web.

Otro tipo de macguffin típico es el cambio de versiones de librerías o aplicaciones a la última, ultimísima versión recién salida del compilador. Aún recuerdo los cascotazos que empezó a dar una aplicación cuando me empeñé en cambiar la versión de base de datos de una Oracle 9.2 a una 10g. Como excusa, decir que la “g” venía de grid y claro, eso de la “granja de servidores de BBDD” sobre el papel, molaba mucho :D También la he liado parda alguna vez con eso de “¡Huy!… ¡nueva versión de refuncliocluncio que mejora esos bugs que yo nunca he sufrido y que incluye nuevas features que aún no sé si alguna vez utilizaré! ME LO BAJO YA”. Menudo pedazo de macguffin

Todos tenemos más de un macguffin que se ha adueñado de nuestro trabajo, pero eso no es importante. Reconocerlo es el comienzo para aprender que no hay que ser cada vez mejor informático sino mejor profesional.



free blog themes
free blog themes