Prostitución de Aplicaciones o creando gallifantes

2

Hoy os traigo dos de esos términos que yo mismo he acuñado (o eso creo). Yo he prostituido aplicaciones. Y seguro que tú lector, también. Ambos sabemos que no está bien, y aún así lo hacemos. Y también he llegado a crear y convivir con gallifantes. ¿y tú? ¿a que sí? Sí, seguro que sí…

¿Qué es la prostitución de aplicaciones?

Básicamente consiste en aplicar una funcionalidad o aplicación completa para un uso diferente del que fue diseñada. Por ejemplo, utilizar una Wiki como sistema de ticketing. Y no digo este ejemplo al azar, lo he visto. Como diría Samuel L. Jackson en Pulp Fiction: “Les he visto mojar las patatas en esa mierda”.

Puede estar a muchos niveles, desde un simple campo que se usa para almacenar un tipo de información, hasta la aplicación completa. Os pongo algunos ejemplos que he visto en persona:

  • Utilizar Lotus Notes como sistema de gestión de incidencias
  • Utilizar Sharepoint como sistema de gestión de incidencias
  • Utilizar Exchange como sistema de gestión de incidencias
  • Utilizar una cuenta de correo como gestor documental
  • Utilizar un sistema de ticketing (como JIRA) como un BPM global.
  • Utilizar SubVersion como gestor documental
  • Etc.

Y esto sólo en aplicaciones, cuando vamos a campos en una base de datos, nos encontramos con mil cosas, como campos de número de teléfono en los que se pone la cuenta bancaria del cliente (porque no había campo para ponerla), o cualquier otra combinación esotérica que se os pueda ocurrir.

Seguro que habéis visto muchos casos en vuestra carrera.

¿Por qué le llamo prostitución?

Primero porque es un trabajo poco digno para la aplicación. Y seguro que si la aplicación pudiese hablar, no lo contaría en su círculo de amigas. Además, normalmente quien la practica, sabe que está mal, pero aún así lo hace.

Resumiendo, es algo feo.

¿Por qué sucede?

Desde mi punto de vista una aplicación no es más que un conjunto de funcionalidades que responden a unos requisitos o un determinado fin. Muchas de esas funcionalidades no son exclusivas de ese fin, por lo que es fácil que encontremos otro fin para el que algunas funcionalidades nos pueden servir. El excel está diseñado para hacer cálculos complejos de forma fácil. Para conseguirlo utiliza una estructura de datos matricial, como una tabla. Tiene muchas utilidades para el cálculo, pero también para la presentación, es decir, para que las tablas queden bonitas. Así, el excel incluye fabulosas funcionalidades para presentar tablas bonitas. Podemos hacer un horario para imprimirlo con las funcionalidades que trae para hacer tablas bonitas. Pero si lo hacemos, estamos prostituyendo al excel. No está hecho para eso. Para hacer el horario hay mejores herramientas. Pero probablemente al usuario le cueste menos hacerlo en excel, porque lo domina y lo tiene instalado en su PC.

A veces no tienes a mano, o no sabes manejar la aplicación que da respuesta a tu necesidad y tiras de lo que conoces. Así podemos concluir que las causas de que un usuario decida prostituir a una aplicación son:

  • Desconocimiento o falta de acceso a una aplicación especializada para la función que se pide.
  • Dominio de una aplicación que contiene funcionalidades afines.

La customización, nuestro mayor peligro

Un usuario prostituye una aplicación para otro fin. Ya no os quiero decir, qué tipo de prostitución podemos hacer si tenemos capacidad de customizar (personalizar) la aplicación. Cuando la aplicación nos da acceso a su código fuente y tenemos programadores, se abre la veda a la prostitución dura. Ahí todo vale. Podemos transformar la aplicación en algo totalmente diferente y la pobre puede acabar muy mal parada. Podemos llegar a crear un gallifante.

Ya no sólo es usar la aplicación para otra cosa, es transformarla y obtener un mutante peligroso con código nuestro. Esto tiene mucho, mucho peligro. Es como una droga. Al principio parece que hemos tomado la mejor decisión del mundo: por poco coste, hemos conseguido nuestra aplicación ideal. Y el artífice normalmente está muy orgulloso por la jugada maestra que ha hecho.

Con cuatro scripts de power-shell he conseguido transformar el servidor de exchange en una herramienta de ticketing. Tengo estados, asignación de tickets, generación de Id’s y respuestas automáticas. He ahorrado un montón de pasta  la empresa con sólo una tarde programado

Un adim orgulloso de su maniobra tras crear un gallifante

¿Por qué les llamo gallifantes? Los gallifantes fueron unas criaturas que aparecían en el programa de Televisión Española “Juego de Niños” que consistían en una simpática figura mezcla de un gallo y un elefante. Hemos convertido una aplicación que tenía un fin en otra para otro fin. Pero al final no tenemos ni una cosa ni la otra, tenemos una mezcla rara. Vamos, un gallifante.

Pero, ¡ay! hemos jugado con fuego. Y el fuego no tardará en quemarnos, como os contaré en el siguiente punto.

¿Por qué es mala la prostitución?

Como diría el maestro Yoda:

El miedo lleva a la ira, la ira al odio, el odio lleva al sufrimiento y el sufrimiento lleva al lado oscuro.

Tarde o temprano terminaremos en el lado oscuro. La aplicación o el campo no están diseñados para el fin que les estamos dando, por lo que es cuestión de tiempo que aparezca una nueva versión que rompe con lo que hemos hecho o que descubramos alguna implicación que se nos había escapado. Siempre hay efectos colaterales. Usando el ejemplo del campo del teléfono, a los meses descubriremos que hemos mandado mails al cliente en el que pone que su teléfono es la cuenta del banco.

Otro ejemplo es cuando esa funcionalidad que usamos para prostituir la aplicación cambia en la aplicación original de forma que cubre mejor el objetivo que viene, pero que nos aparta del uso que habíamos dado. Lo que teníamos se pierde para siempre.

El peor de los casos es cuando entramos en el “mono” de la prostitución, porque podemos personalizar los productos haciendo el gallifante cada vez más grande:

  • Usas la aplicación para otro fin.
  • Descubres que le falta algo, lo cual es normal, porque no se diseñó para eso.
  • Personalizas la aplicación y terminas con un gallifante.

Y comienza un círculo vicioso de personalización y prostitución desmedida. Cuando quieras darte cuenta, tendrás un niño mutante, en vez de una aplicación. Un gallifante completo. Y será muy tarde para salir del lado oscuro. La persona que inicialmente con unas horas de programación le ahorró pasta a la empresa, se encontrará inmerso en una espiral de programación y mantenimiento. Sobretodo si tiene aceptación el resultado. Y cuando venga una nueva versión, todos a temblar.

Mi conclusión es que cuando personalizamos con poco coste conseguimos algo de valor, pero cuando queremos que ese valor aumente el coste comenzará a dispararse, porque la aplicación no estaba diseñada para eso, y comenzaremos a nadar contracorriente. No sólo tendremos que programar funcionalidades, sino también preocuparnos por las colisiones con las que ya hay. Vamos, que en poco tiempo, creamos un legacy importante.

Una vez acabas de leer el artículo… ¿Te has encontrado con algún gallifante en tu vida profesional? Seguro que sí…

Sobre el autor

Jose M. Huerta

Jose es Gestor de Proyectos y Gestor de Servicios en Mallorca. Es Ingeniero de Telecomunicaciones y obtuvo el Master of Advanced Studies durante su etapa como investigador. Pero no tardó en abandonar ese mundo y meterse de cabeza en el mundo de las Tecnologías de la Información.
Está certificado como ITIL Expert. Tiene amplia experiencia en gestión de servicios, clásica e integrada con desarrollo, gestión de proyectos, usando metodologías clásicas y ágiles, gestión de programas y portfolios, gestión de grandes grupos de personas, localizadas y off-shore, sin dejar de perder de vista el lado técnico y freak del sector.
Ha trabajado en varias empresas del sector con distintos roles en áreas tanto de gestión de servicios de soporte como de equipos de desarrollo.
Actualmente trabaja en Sunhotels, como responsable del equipo de operaciones TI.

2 comments

  1. JA 5 octubre, 2017 at 12:44 Responder

    Yo he visto usar como gestor documental la papelera de reciclaje!!! y a la persona que lo hacía defender que era lo mejor del mundo pues permite tener un mismo archivo repetido n veces (versiones), ordenar por fecha, no hay que instalar nada….

Post a new comment