lunes, 16 de diciembre de 2013

Rofl-Asap-Yagni-Kiss Club

En mi trabajo uno de mis compañeros y yo hemos tomado la fantástica decisión de montar un club. Y sí, por muy feo que sea el nombre, el club se llama:

"ROFL-ASAP-YAGNI-KISS Club"

Las personas se aburren. Es un hecho para el cual no hay que buscar más pruebas que los entretenimientos en los cuales dedican su tiempo.... redes sociales, grupos de whatsupp, twitter, twenty, los famosos "jackass", el gran hermano ....

La gran invención de internet a propiciado para las personas cientos de miles de posibilidades a la hora de realizar gestiones, a la hora de adquirir nuevos conocimientos, pero nosotros sin embargo lo utilizamos para cosas como las que he detallado arriba (vale, el gran hermano no tiene nada que ver con internet, pero puestos a ridiculizar formas de entretenimiento, no he podido evitar incluirlo).

Uno de los tesoros que nos ha traído a nuestra vida cotidiana son las "palabras" que forman el nombre de nuestro club:

  • ROFL: Rolling On The Floor Laughing ("rodando por el suelo de la risa").
  • ASAP: As Soon As Possible ("tan pronto como sea posible").
  • YAGNI: You  Ain't Gonna Need It ("no lo vas a necesitar").
  • KISS: Keep It Simply, Stupid ("mantenlo simple, estúpido").


A simple vista pueden parecer frases sueltas, pero para mi todas juntas tienen un gran significado.
Comencemos a hablar.

Mi compañero de trabajo y yo después de trabajar juntos en distintos proyectos durante tres años y medio hemos establecido una curiosa relación (a la vez que bastante sana) en la cual nos podemos decir "hijo de puta" el uno al otro sin perdernos el respeto, lo cual, personalmente, me parece algo francamente maravilloso (he conocido a otras personas que se pasaban el día diciéndose "hijo de puta" el uno al otro y no se respetaban en absoluto).

Así las cosas, cuando los dos comenzamos a analizar uno de los problemas que tenemos entre manos pasan cosas como el dibujo que os presento a continuación:


Y eso que podéis ver aquí es un "diagrama de flujo" de una sección de una de las aplicaciones en las que estamos trabajando en un momento de plena efervescencia creativa. Cuando entre nosotros surgen cosas como esta para solucionar un problema (añadíré que en algún momento durante la conversación que teníamos mientras se gestaba este gráfico, el primer monigote se llamaba "Gandalf" y el último "Sauron") es comprensible que de vez en cuando acabemos rodando por el suelo hartos de reír.

Haré un inciso para decir que las palabras que dan nombre al club son "términos que se utilizan en el argot de internet" (que en el caso de algunos hemos adoptado los programadores como principios de diseño, pero que voy a dejar entrecomillado porque el origen en sí no lo conozco, no termino de tenerlo claro, para mi todos me vienen de oídas y no quisiera faltar a la verdad), pero que describen perfectamente principios que debemos seguir a la hora de desarrollar software.

Lo de "tan pronto como sea posible" tiene poco que explicar. Es el sino de cualquier desarrollador. Los jefes lo quieren rápido, rápido, rápido lo que en muchos casos acaba equivaliendo a mal hecho. Las cosas a veces se pueden hacer bien y rápido, pero eso es así sólo cuando está muy claro lo que se tiene que hacer. En otro caso, algo que se hace rápido se hará mal, o como poco, de forma ineficiente.

"No lo vas a necesitar" está muy ligado a la imaginación del programador y al eterno problema que supone el hecho probado de que el usuario final NUNCA SABE LO QUE QUIERE. En muchas ocasiones cuando desarrollamos un esbozo de la aplicación para presentar al cliente dicho esbozo no se parece ni de lejos a lo que el cliente nos pretendió transmitir, lo cual implica tirar lo que se ha hecho y realizar una nueva prueba. Cuando por fin tenemos una demo satisfactoria, durante el desarrollo final se van haciendo modificaciones. Todo lo dicho a nosotros nos influye y nos hace intentar ir un paso por delante, de forma que acabamos desarrollando funcionalidad que al final acaba por NO USARSE y nos cuesta eliminarla después de tenerla hecha.

Por último, el más importante para el final, "mantenlo simple, ESTÚPIDO". Veamos lo que parecerá una chorrada:
Uno de los problemas más tontos a los que se enfrenta un programador es el tener que intercambiar el valor de dos variables .... dos variables serían dos objetos, dos "entes" cuyos valores nos dan igual, pero que lo que pretendemos es que el primero acabe con el valor del segundo y el segundo con el valor del primero ....
.........
pensad en ello como en que tu tuvieras 3 litros de leche en una botella, un amigo tuviera 4 y tu quisieras quedarte con los 4 de tu amigo y que tu amigo se quedara con los 3 .... al final que pasaría, pues que tu amigo tendría que vaciar su leche en una tercera botella, tu vaciarías tu leche en su cacharro y echarías la leche del tercer cacharro en el tuyo (vamos a obviar el tamaño de los cacharros, tendrían la suficiente capacidad).
------------------
Pues eso:
variable a = 3;
variable b = 4;
variable c;

c = a;
a = b;
b = c;
------------------
Esto sería lo más sencillo .... sin embargo, los dos amigos podríais haber decidido coger las botellas de leche, meterlas en un paquete, llamar por teléfono a SEUR para que se lleve el paquete a tu casa, poner sobre aviso a la criada, pedirle que se caliente la cabeza en como meter tu leche en la botella de tu amigo y viceversa, y finalmente, decirle que llame a SEUR otra vez para enviar la botella de leche a casa de tu amigo ....
¡¡POR DIOS, QUE COMPLICACIÓN, HAZLO SIMPLE, JILIPOLLAS!! (o lo dicho, "mantenlo simple, estúpido").

Así las cosas, con dos compañeros que forman un club de "trabajo y risas", en el cual tenemos a la "puta" (mi compañero) y el "esclavo" (yo), solo nos falta ir añadiendo miembros para tener la "película snaf (habéis visto "asesinato en 8mm.") perfecta".

P.D.: Mi más sincero agradecimiento a mi compañero de trabajo Sergio, una persona genial donde las haya con la que el día a día en el trabajo es muchísimo más llevadero, y con el que una broma es eso, una broma y nada más.

No hay comentarios:

Publicar un comentario