lunes, 4 de julio de 2016

Como autogenerar scripts SQL de forma incremental desde las entities JPA

¿Estas cansado de tener que escribir tus scripts de bbdd?¿Te gustaría poder trackearlos de una forma sencilla en tu repositorio? Hoy os voy a enseñar una solución sencilla para autogenerar a partir de vuestras entities JPA los scripts necesarios para crear el DDL de vuestra bbdd. Además, generaremos el SQL de forma incremental en cada versión del proyecto, es decir, generaremos Alter Tables en lugar de generar de nuevo todo el DDL con cada modificación de las entities. También crearemos dos bases de datos H2 en memoria, una con la versión ya publicada del DDL (released) y otra con las modificaciones añadidas durante el Sprint (snapshot), de forma que podremos crear tests de integración para probar la compatibilidad de ambas versiones. Esto promete... ¿verdad?. Pues empecemos viendo los plugins de Maven que vamos a usar:

build-helper-maven-plugin:
Lo utilizaremos para parsear la versión de nuestro proyecto, generando varias properties con la versión mayor, minor e incremental, que luego nos servirán para nombrar los ficheros.


 org.codehaus.mojo
 build-helper-maven-plugin
 1.10
 
  
   parse-version
   
    parse-version
   
  
 

copy-rename-maven-plugin:
Lo usaremos para copiar la ultima versión publicada de la bbdd, de esta forma, podemos evaluar los cambios que ha habido en el DDL desde ese momento, sin que tengamos que preocuparnos de cambios intermedios durante la versión: queremos generar un único fichero con todos los cambios en el DDL que se hayan producido.

 com.coderplus.maven.plugins
 copy-rename-maven-plugin
 1.0
 
  
   copy-file
   validate
   
    copy
   
   
    src/main/resources/db/example_released.mv.db
    src/main/resources/db/example_snapshot.mv.db
   
  
 


hibernate3-maven-plugin:
Hibernate se encargará de comparar la bbdd ´snapshot´, copia de la version ´released´ (y que será configurada en el persistenceUnit) con las entities JPA de nuestro proyecto, generando un fichero con el DDL necesario para actualizar la bbdd para que represente con exactitud a las entities.

 org.codehaus.mojo
 hibernate3-maven-plugin
 3.0
 
  
   validate
   
    hbm2ddl
   
  
 
 
  
   
   
  
 
 
  
   org.hibernate
   hibernate-entitymanager
   3.6.10.Final
  
  
   com.h2database
   h2
   1.4.191
  
 


flyway-maven-plugin:
Este plugin es capaz de leer los Scripts versionados con el DDL de la bbdd y ejecutarlos secuencialmente para generar un fichero H2 (released) con los mismos.

 org.flywaydb
 flyway-maven-plugin
 4.0.3
 
  
   db/scripts
  
  
   EXAMPLE_SCHEMA
  
  jdbc:h2:file:./src/main/resources/db/example_released
  sa
  
 
 
  
   install
   
    migrate
   
  
 
 
  
   com.h2database
   h2
   1.4.191
  
 


FLUJO:
En la solución propuesta tenemos dos profiles de maven:

createScript: ejecutará los 3 primeros plugins, de forma que, se copiará la ultima bbdd publicada con flyway (released), correspondiente a la ultima versión cerrada del proyecto. A partir de esta nueva bbdd (snapshot), hibernate evaluará las entities JPA del proyecto y generará el DDL con los cambios encontrados, los cuales se almacenarán en un fichero generado con la versión actual del proyecto. Adicionalmente se aplicarán estos cambios en la versión ´snapshot´ de la bbdd. Podemos ejecutar este profile tantas veces como necesitemos durante el desarrollo de la versión, resultando un único fichero con todos los cambios realizados.
releaseScript: Flyway se encargará de migrar los ficheros generados a la versión ´released´ de la bbdd H2. Ejecutaremos este profile junto al cierre de versión del proyecto.

Podéis encontrar todo el código de ejemplo en mi Gitlab siguiendo el siguiente enlace:
Proyecto de ejemplo en GitLab

miércoles, 25 de marzo de 2015

¿Una imagen vale más que mil palabras?


Una imagen vale más que mil palabras. ¿Cuántas veces habremos escuchado esta frase? pero, ¿qué significa exactamente? Cuando nos expresamos oralmente, tratamos de transmitir una información a nuestros interlocutores. Esta información no es más que la interpretación en palabras de una serie de datos a los que les aportamos un significado tras un procesamiento en nuestro cerebro. Este procesamiento se lleva a cabo desde la experiencia, el contexto y las emociones que en ese momento evoca el sujeto. Obviamente, estas tres condiciones están muy relacionadas entre sí puesto que no tendríamos un conocimiento suficiente del contexto si no tuviéramos una experiencia sobre el mismo; de la misma forma, no se puede alcanzar una experiencia sin asociarla a una serie de emociones que además tienen que ver con el contexto del individuo.
Un recuerdo puede estar asociado a una sensación desagradable, que además ha sido distorsionada con el tiempo y la reiteración, convirtiendo esa imagen poderosa que tenemos en nuestros cerebros, en la suma desasociada de recuerdos, sensaciones y emociones que se han ido agregando con el tiempo para distorsionar el recuerdo original: ni tan siquiera somos conscientes de ello... No es de extrañar pues, que cuando captamos la realidad y tratamos de interpretar los datos que llegan a nuestro cerebro, la experiencia, el contexto y las emociones, jueguen un papel crucial a la hora de interpretar los matices de la opinión y las sensaciones positivas o negativas que esto causa en nosotros mismos.
Si nos comunican el retraso de un proyecto, no podremos valorar la importancia de la información sin conocer hasta qué punto estamos involucrados en el mismo y qué expectativas, o emociones, albergan al respecto el resto de interesados, véase: nuestros superiores. Esta relación interpersonal afecta a nuestras emociones y a nuestras propias expectativas y forma parte del contexto del proyecto. Además, por experiencia, podemos saber que dos tercios de los proyectos que emprendemos se retrasan y que  aún así, la mitad de ellos acaban llegando a buen término. Si conociéramos los motivos del retraso, podríamos incluso evaluar cuál de las opciones es la más probable o incluso, intervenir en el desarrollo de los acontecimientos para facilitar el camino tomando alguna decisión.
Volviendo al tema de la comunicación, habiéndonos detenido ya en el complejo camino que toma el cerebro para interpretar la información, se hace fundamental añadir al mensaje -para que sea entendido completamente- un contexto y una carga emocional, además de una valoración que encapsule nuestra experiencia. No es lo mismo decir que el marisco ha subido su precio, qué decir que ha ocurrido en Navidad; aún así, todavía tenemos que presuponer que nuestro interlocutor conoce la relación demanda precio y su alteración en estas fechas. Como vemos, el contexto puede ser un monstruo que se escapa del ámbito de nuestro mensaje, es por ello que los humanos hemos desarrollado algo a lo que llamamos cultura -general, o más especifica, como por ejemplo la cultura de empresa- que engloba todos aquellos conocimientos y experiencias que se nos presuponen en un contexto. Esto significa que, además del idioma, el conocimiento de una cultura puede ser primordial para el entendimiento con personas de otro país.
Antes hablaba de la inclusión de una carga emocional en el mensaje. Cuando hablamos, un interlocutor experimentado puede interpretar si estamos enfadados, cansados, sorprendidos o un sin fin de emociones que pueden añadir un significado crucial al mensaje que estamos trasmitiendo. Esta información es más ambigua de interpretar en un formato escrito, más aún mecanográfico. No obstante, no hay que despreciar la habilidad de las personas para introducir en el lector, incluso en un medio tan frío como este, emociones que son recogidas e interpretadas por el cerebro y que despiertan algo que llamamos empatía, o sensación de comprensión del estado de ánimo mediante la emulación de emociones en un contexto. No hay que confundir la empatía hacia la fuente del mensaje, con la sensación que éste ultimo provoca en ti; sin embargo, sí que tienen algo en común: ambas sensaciones pueden ser un engaño... La publicidad trata de explotar esta carga emocional -muchas veces ficticia- en sus eslóganes para despertar en nosotros sentimientos que nos impulsen a realizar una acción interesada. Esto no es más que un ejemplo de la importancia de la carga emocional en nuestros mensajes a la hora de conseguir lo que queremos más allá de incluir simples y burdos emoticonos.
Por último, la experiencia es nuestro más valioso aliado a la hora de transmitir o recibir un mensaje. El conocimiento de los destinatarios del mismo permite establecer la mejor forma de abordarlo: el idioma elegido, el medio, el tono y un sin fin de pequeñas decisiones que tomamos inconscientemente con el objetivo de incrementar la legibilidad -o ilegibilidad- del mismo. La experiencia nos aporta un objetivo más allá de la mera transmisión efectiva de datos. Buscamos una respuesta, una interacción o un reconocimiento, que un comunicador experimentado sabe manejar y retroalimentar: no olvidemos que la experiencia se construye sobre la suma de sensaciones en situaciones similares.
En resumen, la comunicación -tanto hablada, como escrita como de cualquier tipo- requiere de unas grandes habilidades y aptitudes que debemos aprehender porque para que mil palabras valgan más que una imagen, tal vez sea necesario ser un maestro impresionista como Claude Monet y su estación de Saint lazare.

domingo, 20 de enero de 2013

Objetivos, metas y motivaciones

En muchas ocasiones nos hablan tanto en la empresa como en la vida, sobre que debemos alcanzar unos objetivos en ciertos ámbitos: entregar un proyecto, comprarse un coche, dejar de fumar, ir al gimnasio... Estos objetivos son unas metas que otros o nosotros mismos nos marcamos para conseguir algo que todavía no tenemos y en cierto modo, avanzar hacia algo que queremos conseguir. Estos objetivos no son gratuitos, sino que son los hitos hacía una meta de mayores dimensiones. Estas metas están al final de un camino que vamos eligiendo en función de unas motivaciones. Es importante tener claro que los objetivos nos pueden ser impuestos, sin embargo las motivaciones para hacerlos las elegimos nosotros y es crucial tenerlas bien presentes y perfectamente identificadas para comprender el porqué de todo el esfuerzo.

MOTIVACIONES COMO FILOSOFÍA DE VIDA

Es un error común pensar en que tenemos que buscarnos una motivación para realizar un trabajo que no nos gusta o que nos es desagradable; lo que tenemos que hacer es descubrir esa motivación que ya existe y que nos esta empujando a acometer esta tarea y a no abandonarla: si no tuviéramos una motivación subyacente para hacer algo, no lo abordaríamos en ningún caso. Partiendo de esta base como motor de nuestra vida y de nuestra propia existencia, debemos diferenciar varios tipos de motivaciones. A mi me gusta para este punto rescatar la Pirámide de Maslow.


Nótese que todas las motivaciones parten desde una visión egoísta del sujeto, que más tarde pueden implicar a otras personas, pero sobre las que hay un interés o necesidad personal mayor. Así, el voluntario de una ONG busca una satisfacción personal en contraprestación al esfuerzo realizado. Superada la fase de 'seguridad', para el individuo el dinero empieza a carecer de sentido, por lo que hay que evitar visualizar las motivaciones sobre un prisma económico: tarde o temprano provocará insatisfacción e infelicidad.

DE LA MOTIVACIÓN A LA META: OBJETIVOS Y TAREAS

Las motivaciones pueden abstraerse hasta el punto filosófico del existencialismo, pero es una base general que hay que concretar y definir en nosotros mismos. Por este motivo necesitamos plasmar estas motivaciones en hechos más concretos y realizables. Así, el hecho de la existencia puede simplificarse en el hecho de la vida, lo que puede implicar crecer, desarrollarse, tener buena salud, etc. Aquí ya estamos empezando a hablar de objetivos como instancias concretas de una motivación. Es lo que solemos identificar como metas o hechos deseables a los que queremos llegar. Estas metas aún están muy ligadas a una motivación y es fácil identificar una con otra. La peculiaridad de las metas como motivaciones es que en casi todos los casos, nos es imposible superarlas, pues parten de una Idea (muy Platoriana) y podemos perfeccionarlas o sobrevolarlas tanto como deseemos. Por este motivo hablamos de objetivos, o hitos concretos, a cumplir en un tiempo preestablecido y con una finalidad bien conocida y orientada a la meta a la que nos queremos acercar. Un objetivo demasiado impreciso o duradero se parece demasiado a una meta, por lo que es necesario abordarlo en tareas más pequeñas que nos acerquen a él. Así, hemos ido concretando la existencia, en la vida, en la buena salud, en ir al gimnasio, en hacer 15 minutos de cinta, etc.
Así pues, la cuestión que no tenemos que olvidar cuando estemos corriendo en una cinta estática, o en cualquier tarea en general que realicemos, es que hay un objetivo, una meta y una motivación detrás por la que lo estamos haciendo, que es algo que hemos elegido nosotros y que nos va a aportar un valor personal. Puede que las tareas no las elijamos nosotros, pero obedecen a una razón lógica que aceptamos como válida para conseguir aquello que anhelamos.
En la próxima entrada hablaré sobre cómo podemos identificar nuestras motivaciones (conocernos a nosotros mismos), cómo las plasmamos en metas (Intereses y necesidades) y cómo podemos abordar estas metas en objetivos y tareas (Mejora continua).

jueves, 20 de diciembre de 2012

#juguemOS: Kanban (parte 7)

No hace ni una semana que fue el Open Space y ya llevo 7 entradas... no puedo prometer que sea la última que escriba (pues como ya veis, este día dio para mucho), pero si os digo que fue la última dinámica a la que asistí: se vislumbra el final... snif!
KANBAN ¿como resistirse a su sonoridad? Sí prácticamente dan ganas de usarlo solo por su nombre. ¿Pero qué es Kanban? ¿Post-its pegados en una pared? ¡Ni mucho menos! Era necesaria una pequeña introducción sobre el tema que nos fue dada en el tiempo récord de 4 minutos; deberían promoverse más lecciones tipo Twitter: acotadas (tomo nota mental). Creo que hay un vídeo sobre esto, pero de momento no ha visto la luz, así que os dejo con un articulo muy parecido a lo que se contó pues de lo contrario me extenderé demasiado ¡qué novedad!.
Se habló del juego de los aviones para entender Kanban, pero puesto que no teníamos material y teníamos cierto respecto por los bosques del planeta, desistimos de jugarlo (la versión que se propuso era mucho más 'bestia' que la del video, por el hecho de explicar la multitarea). No obstante, sí que jugamos a otro juego con esta intención. Se trataba de realizar tres tipos de proyectos, cada uno con una persona distinta, a saber:

  • Proyecto 1: Palmas. (Sí, tipo niños de recreo).
  • Proyecto 2: Contar y aplaudir.
  • Proyecto 3: Cantar el San Fermín. (esa de 1 de enero, 2 de febrero, 3 de marzo, etc).
Sí, los proyectos no iban a generar mucho dinero que digamos, pero como ejemplo servían. Primero probamos con la unitarea: empezamos un proyecto, esperamos a que terminaran todos, nos emparejamos con la persona con la que realizabamos el segundo proyecto y lo terminábamos  posteriormente hacíamos lo mismo con el tercero. Resultado: teníamos que esperar a que terminase todo el mundo para poder abordar el siguiente proyecto, pues cada pareja tenía un tiempo distinto de realización, sin embargo una vez empezábamos nos concentramos en la tarea, sin interrupciones, por lo que el producto era de calidad y los tiempos pequeños.
A continuación probamos la multitarea: Empezamos con un proyecto y cuando oíamos una señal, teníamos que dejarlo donde estuviera y buscar a nuestra pareja del siguiente proyecto; después interrumpíamos este también para seguir con el tercero, luego continuábamos con el primero en el punto que lo habíamos dejado y así hasta que terminábamos con todos. Resultado: mucho estrés; repetición de trabajo, porque no recordábamos exactamente en qué punto lo habíamos dejado; perdida de calidad del producto, puesto que no teníamos concentración en la tarea y sufríamos interrupciones, etc. ¡Pero es que además los tiempos totales fueron prácticamente iguales! y eso contando con el factor de que con la multitarea ya conocíamos los proyectos, puesto que los habíamos hecho antes.

Conclusiones, con la unitarea podíamos entregar productos antes y abortar la realización de productos que ya no necesitamos (si no llegamos al 7 de julio, ya no merece la pena hacer el proyecto 'san fermín', por lo que ahorramos dinero al cliente en un producto inútil). Por contra, hay que explicar al cliente que no podemos empezar a realizar el proyecto hasta que no terminemos lo que tenemos entre manos, cuestión que casi es preferible a abordar un proyecto que triplicará el tiempo razonable de realización puesto que no estamos centrados en él al 100%.

martes, 18 de diciembre de 2012

#juguemOS: cambio y resistencia (parte 6)

Esta sin duda fue una de las charlas más comentadas y prueba de ello es la gran cantidad de gente que participó (lo siento por las otras dinámicas...). Empezó con una pequeña charla del facilitador en el que atacó el problema del cambio, que sería el eje central del resto del encuentro: el cambio y la resistencia. Habló de tres factores que hay que tener en cuenta al promover un cambio:

  • Psicológicos: Si nos cargamos el departamento de middleoffice... y yo soy el jefe de middle office... ¡oh mierda! No me interesa...
  • Emocionales: Yo estuve aquí cuando se conformó middleoffice... snif! tengo muchos recuerdos aquí :'( ¡No quiero irme!
  • Comportamentales: Ahora me van a trasladar a trabajar a la oficina de chichinabo... pfff! A saber si me voy a comer atasco... Estoy mejor aquí.
A continuación, centró el tema en el cambio de metodología dentro de una empresa. Para ello, dibujó un triangulo y colocó en la parte más alta a los jefes: "No me afecta, soy demasiado importante"; en la parte de abajo a los curritos: "¿Más autogestión? ¿más responsabilidad? ¡me interesa!"; y por último a los jefecillos: "Ya no voy a ser necesario, me van a quitar de en medio...". Es evidente quién va a oponer más resistencia al cambio, así que nos centramos en su figura.
A continuación hicimos un ejercicio habitualmente mental y lo plasmamos en papel. Consistía en encontrar la forma de convencer a esa persona para que quisiera llevar adelante el cambio, pero para ello, no nos podíamos limitar a darle razones al cargo, teníamos que dárselas a la persona. Por este motivo, en una primera hoja dibujamos como era nuestro personaje: sus aficiones, sus gustos, sus manías, su vida, sus enseres, su contexto psicosocial y las horas a las que se levantaba para ir al baño :) Le pusimos el nombre de Borja, una corbata para indicar que era jefe y una biografía de tomo y lomo; fue curioso: salió un jefe 'trepa'...
Ya teníamos la base, ahora había que crear sus motivaciones. Para ello dibujamos en una segunda hoja una cabeza ladeada en la que cada sentido se correspondía con las ideas que podía percibir e interpretar nuestro personaje acerca del Scrum: miedo, oportunidad, perdida de poder, prestigio, dinero, más dinero, etc. 

El siguiente punto fue crear un mapa mental. En el medio pusimos como tema central el agilismo y de ahí fuimos sacando ideas positivas y negativas que podía tener en sí mismo. Pronto hicimos una radiografía de Scrum en toda su crudeza.
Tras estos dos puntos divergentes, había que converger, por lo que asociamos todas las ideas que le preocupaban a nuestro personaje sobre las ideas relacionadas del mapa de Scrum. Con esto, podíamos anular las inquietudes y reforzar las aspiraciones con razones y argumentos del beneficio que le reportaría a Borja llevar a cabo el cambio. Ideal para taladrarle el cerebro en una charla corta de pasillo aprovechando que se levanta para ir al servicio (sí, para algo apuntamos esto jeje).
Y esto fue todo, la siguiente charla a la que asistí se llamaba simplemente: Kanban; os adelanto que fue muy ilustrativa...

lunes, 17 de diciembre de 2012

#juguemOS: juegos para la empresa (parte 5)

Ya con la carrerilla del que ha asistido a dos encuentros, el tercero se me planteó de difícil elección... ¡había tantos temas interesantes! Puesto que en la sala de la entrada iban a hablar de juegos para la empresa y precisamente el Open Space trataba de esto, me pareció imperdonable perdérmelo para entender realmente por qué estaba allí; no nos engañemos: uno ya no tiene 8 años e Izada no es precisamente el parque de la esquina. Necesitaba un porqué serio y este espacio me proporcionó uno.
Como se comenta en esta retrospectiva del evento (muy buena y mucho más corta que mis interminables crónicas), se hablaron de varios juegos durante la sesión, pero puesto que no conozco en detalle ninguno, no tuvimos ocasión de practicarlos y ¡no tenía un maldito cuaderno a mano donde tomar apuntes!, mejor os remito al mencionado blog en el que tenéis un bonita lista de los juegos para que busquéis en YouTube. Yo me voy a centrar en las ideas que se sacaron, que al menos a mí, me parecieron mucho más productivas :)
Y acá va el sentido de #juguemOS. Efectivamente no somos niños de 8 años y no buscamos un mero entretenimiento en los juegos. Es más, se podría argumentar que estos niños tampoco juegan por mera diversión, sino por instinto, al igual que los animales, para desarrollar sus habilidades motoras e intelectuales. Entonces, queridos amigos, allí no habíamos ido a pasar simplemente un buen rato (que lo hicimos), sino a enriquecernos sobre aspectos concretos y claramente definidos mediante una herramienta altamente contrastada desde la niñez como son los juegos. Criticamos durante unos minutos el hecho de jugar por jugar, como terapia de fuegos artificiales para hacernos creer que somos muy modernos, ¡no! Necesitamos unos objetivos y un planteamiento que ataque una carencia, de nada sirve un juego comunicativo cuando mi equipo "se comunica de puta madre", hay otras prioridades en las que emplear mejor nuestro tiempo. Además, con un objetivo no basta, hay que asegurarse de que se reflexione sobre él sacando unas conclusiones bien guiadas por el facilitador, sino uno puede sacarse una idea bien equivocada como comentaba en la charla de cooperación y valor añadido. ¡Las retrospectivas son fundamentales! Si llevas a tu equipo al paintball, al menos explícales que el objetivo no es acribillar a los compañeros, sino hacer equipo y eliminar tensiones.

Para plantear correctamente estas cuestiones, es fundamental la tarea del facilitador, que debe de ser una parte más del grupo, no alguien que imponga y coarte al resto. Para que esto pueda ser posible, esta persona debe dominar el arte de la comunicación (ya escribiré algunas técnicas), teniendo varias ideas en mente:

  • Con el tiempo, lo que uno recuerda es la introducción y la conclusión, tendiendo a olvidar el resto del mensaje.
  • Los puntos de humor y la energía en el mensaje son fundamentales para mantener la atención.
  • Dar soporte visual a lo que dices ayuda a centrar la idea. (de ahí la importancia de Kanban)
Por tanto, los juegos son una herramienta para provocar situaciones que el facilitador pueda utilizar para sembrar una idea o reflexión en las mentes de las personas, siendo esta enriquecedora y productiva para los objetivos comunes (esto empieza a parecer una secta). En la siguiente entrada, comentaré cómo podemos desmembrar a una persona para precisamente convencerla de algo que necesitamos que comparta, pues precisamente, fue lo que se comentó en el siguiente encuentro al que asistí.

domingo, 16 de diciembre de 2012

#juguemOS: War Games (parte 4)

Tras el primer gran encuentro, el siguiente al que decidí asistir también transcurrió en la misma sala (la que se encontraba en la parte superior de las 3 plantas que componían Izada). En esta ocasión asistió más gente y nos dispusimos en un corro de sillas: esta vez tocaba hablar. Por el perfil de la gente que participaba, me di cuenta de que poco o nada podía aportar a la conversación, no obstante, sí que me pareció interesante oír lo que aquellas personas que trabajaban diariamente con equipos se tenían que recomendar los unos a los otros.
La charla giró alrededor de una idea: cómo introducir al agilismo a aquellas personas que se resistían y remaban en dirección opuesta. Para ello, se plantearon dos casos reales:

  • Un equipo dentro de una organización con rencillas personales, acostumbrados a trabajar a su aire y cerrado al cambio agilista que se estaba gestando en la empresa.
  • Un equipo con un miembro saboteador que se resistía a trabajar en Scrum junto con el resto del equipo, que ni siquiera acudía a las daily meetings y que entregaba el trabajo a los 6 meses sin otro tipo de interacción con sus compañeros.
Sobre estas bases, se plantearon varias sugerencias con la intención de integrar a estas personas en la organización sin tener que recurrir a amenazas ni a salidas de tono que pudieran producir una situación de no retorno.

Una primera idea sobre la que se trabajó era que en vez de imponer este cambio, debía ser el propio equipo el que propusiera esta metodología. Para conseguir esto, el facilitador tiene que ejercer un 'arte' que mediante preguntas y acciones sutiles ponga de manifiesto los errores que se están cometiendo y que promueva la aportación de ideas para solucionar esto, guiando la conversación a la propuesta que buscamos. Con esto, lo que conseguimos es que en lugar de encontrarnos rechazo sobre una idea, el equipo la defienda y se comprometa con ella al considerarla suya.
El conocimiento de la metodología es fundamental para evitar el rechazo. Integrar a uno o varios miembros del grupo en otros equipos en los que se este llevando a cabo esta dinámica puede favorecer la comprensión y la posterior aplicación del agilismo. Hay que tener cuidado sin embargo de que produzca un efecto contrario de rechazo por considerar al equipo Scrum demasiado engreido o aleccionador. Se llegó a plantear incluso el cambio de organización del grupo, disolviéndolo al menos temporalmente para que trabajasen separados y realizaran una simple reunión de especialistas en su ámbito a la semana.
Obligar en cierta dosis a los trabajadores a asistir a las daily meetings y a otros eventos de la dinámica es completamente aceptable, como obligar a cumplir un horario. Se supone que la integración aunque sea a desgana permitirá que algo vaya arraigando. Si la persona se vuelve hábil en boicotear el encuentro, el facilitador debe promover la presión de sus propios compañeros para evitarlo y responder con técnicas aún más ingeniosas para contrarrestarlo; prometo publicar algunas técnicas según el tipo de personalidad en otra ocasión ;)
En contraposición, también se incidió mucho en que no era bueno tener un superior sobre el equipo, sino que debía autogestionarse y autoregularse en la medida de lo posible. Se habló de la transmisión y el intercambio de conocimiento que debía ejercer el Scrum Master, por encima de la autoprotección del terreno. Se hizo un simil con la edad media cuando los maestros artesanos transmitían todos sus conocimientos a sus aprendices (aquí debo mencionar también a Platón y compañía, porque si no mi novia  filosofa de vocación, me lo recriminaría). Más importante que el orgullo es la mejora continua, si alguien lo hace mejor que tú, asume sus técnicas frente a las tuyas como mejores y emplealas.
En definitiva, diversas ideas para solucionar un mismo tema que permaneció abierto y que fue muy interesante psicológicamente. En otro espacio, tratamos también como convencer a una persona de la conveniencia de una idea, por lo que pronto hablaré más al respecto aportando una técnica facilmente trazable en Kanban :)

#juguemOS: cooperación y valor añadido (parte 3)

El primer encuentro de la mañana no fue demasiado concurrido, quizá porque era un tema muy trillado para los habituales en este tipo de eventos; sin embargo para mi, novato aún, me pareció un buen tema para empezar. No me equivoqué.
El primer juego que se propuso fue denominado 'el salto'. Antes de nada quiero advertir que mi memoria es pésima para nombres, por lo que es posible que me invente algunos y renombre otros en este blog, puesto que como principiante que soy, no se me ocurrió que apuntarlos hubiera sido una buena idea, ¡gran fallo!. Asimismo, tampoco mencionaré el nombre de los facilitadores de estos juegos, esta vez para no menospreciar el aporte de otros participantes, dado que en la mayoría de los casos, los encuentros se gestaron por la participación de muchas personas que también merecen mi reconocimiento.
Volviendo al tema, 'el salto' era una alegoría a la confianza de trabajar juntos y el riesgo de conseguir un valor añadido para todos, frente a la decisión egoísta y conservadora de enfrentarse en competencia para beneficio personal. Dicho de otra forma: nos dividimos en grupos de 2 con un representante que llevaría a cabo la acción (saltar o no saltar) que hubieran acordado tras una reunión de un minuto. Si todos saltaban, el 'mercado' nos recompensaría con un caramelito para cada uno; si nadie saltaba, todos perdíamos caramelos; y si unos saltaban y otros no, los primeros debían ceder sus dulces a los segundos. Con estas sencillas reglas nos pusimos a jugar. Yo, perro viejo en este tipo de juegos, pues había participado previamente en varias variantes de experimentos sociológicos organizados por la Universidad Carlos III de Madrid (ya os contaré más en alguna ocasión...), no me fié de la 'buena voluntad' de mis compañeros y con esta estrategia escéptica empezamos a jugar, ganando un par de caramelos (efectivamente, solo saltaron dos de los 4 grupos). La siguiente ronda fue por los mismo derroteros, por lo que nos apuntamos otro par de dulces :) Para la tercera ocasión, se nos dio la oportunidad de acordar con los otros grupos cual iba a ser la acción a realizar: saltar, por supuesto... ¡o eso debía haber sido! Pues efectivamente hubo traiciones, pero no de nuestro grupo, que pese a estar seguros de que esto iba a ocurrir, decidimos sembrar confianza para no corromper (o hackear como decían algunos) el funcionamiento del juego en la siguiente y definitiva ronda, en la recogimos lo que habíamos sembrado traicionando nuevamente la confianza del resto.
Evidentemente, la conclusión de este juego no debía ser que la competencia y la traición eran la mejor estrategia para ganar, pero fue lo que finalmente nos hizo campeones. ¿Pero realmente habíamos ganado? Si planteamos el juego como competencia entre empresas, definitivamente habíamos comido mercado al resto, pero si planteáramos el juego como competencia interdepartamental dentro de una empresa, lo único que habíamos conseguido era redistribuir los aportes de beneficios, pero sin conseguir valor añadido del mercado externo, es decir, ¡un fracaso! Discutimos que tal vez el juego no estaba bien planteado, dado que era muy difícil conseguir una mayoría, pues repercutía en muchos riesgos y el beneficio que obteníamos era escaso. Propusimos una variante del juego en la que se dieran recompensas moduladas en enfrentamientos por parejas, es decir, sólo dos adversarios que se enfrentaran sobre los mismos supuestos, ganando 3 caramelos cada uno si ambos saltaban, ganando 5 si solo uno de ellos lo hacía y ganando 0 el que no hubiera saltado en este último caso (En mi experiencia, mucho más colaborativo).
Como nos quedaban 10 minutos de tiempo, decidimos jugar a un juego simple, pero bastante divertido, otro tipo de salto, que denominaré 'espectativa de salto'. Consistía en trazar una linea en el suelo desde la que saltar con los pies juntos y marcar con un post-it la distancia que esperábamos acometer. Absolutamente todos, saltamos más de lo que nos habíamos marcado, por lo que plantemos unas conclusiones bastante interesantes que reproduciré aquí:

  • No nos conocemos bien a nosotros mismos y eso nos hace inseguros al estimar.
  • Tratamos de generar menos expectativas de las que realmente somos capaces de complacer.
  • Podríamos limitarnos a saltar únicamente para cumplir con las expectativas que habíamos generado, sin esforzarnos en alcanzar el máximo de nuestro potencial y nadie nos diría nada... ¿o si?
Con estas ideas en la mente terminamos el primer encuentro y me dirigí, al segundo: War Games!. Pero esto es otra historia y parafraseando a Michael Ende: debe ser contada en otra ocasión, sin ánimo de convertirlo en una Historia Interminable...

#juguemOS: arrancando el Open Space (parte 2)

Tras llegar al espacio Izada donde se iba a desarrollar el evento, enseguida me percaté de que aquello iba a ser verdaderamente interesante. Compañeros de trabajo, viejos conocidos y algún que otro visitante de tierras lejanas me esperaban con muy buen carácter. Iniciamos la jornada con un pequeño juego (como no) destinado a que conociéramos las estancias en las que nos íbamos a desenvolver durante las siguientes horas. Consistía en encontrar la ubicación de una serie de objetos y la complicidad de algunas personas sobre algunos aspectos como la ganas de llenar el estomago: sí, ¡el premio por completar el juego era un rico desayuno!
Tras saciarnos de bollitos ya estábamos listos para formar la parrilla del Open Space. Para los que no lo sepáis, en un espacio abierto, no hay ningún evento predefinido, sino que los propios participantes proponen actividades y discusiones que son organizados en las distintas estancias (3 en este caso) a lo largo de franjas de 50 minutos. Tras varios segundos de incómodo silencio y timidez, los facilitadores fueron fluyendo y completamos un programa que prometía mucho, pero que resultó ser bastante más.
Con este panorama, elegir la primera actividad me resultó difícil, así que acordé con mi novia que separados abarcaríamos más y que más tarde tendríamos tiempo de contarnos lo que había experimentado cada uno (creo que he conseguido convencerla para que también publique en este blog sus crónicas, ya veremos... :P); así pues, me despedí de ella y subí las escaleras hacia el primer encuentro del día: cooperación y valor añadido, que describiré en la siguiente entrada :)

#juguemOS: juegos Ágiles (parte 1)

Tras un tiempo trabajando diariamente con Scrum: comprendiendo sus peculiaridades, sus potenciales y como no, sus atractivas complejidades; me decidí a asistir a un Open Space que se iba a celebrar en Madrid sobre metodologías ágiles. A este espacio abierto de conocimiento asistió una diversidad de perfiles de muy diferentes ámbitos, pero sobre todo, una gran cantidad de personas dispuestas a compartir y aprender. Con estos ingredientes removidos en un espacio increíble como es Izada, no era de extrañar que #juguemOS se convirtiera en todo un éxito que nos dejó un muy buen sabor de boca y con ganas de repetir.
Pero volvamos un poco atrás, dado que que mi asistencia a un evento de estas características no fue más que la culminación de un proceso que había empezado mucho tiempo atrás sin que yo prácticamente lo advirtiera. Los procesos ágiles están presentes sin que lo percibamos en nuestra vida cotidiana (ya hablaré de ello en alguna ocasión), incluso los estudié en la universidad de una manera teórica (tengo una presentación maravillosa sobre XP que algún día publicaré), pero sin embargo hasta que no trabajé con ellos no supe apreciar su verdadera importancia y todo lo que podían aportar. La visualidad de Kanban fue una de las primeras cosas que me llamaron especialmente la atención. Llenar una pared de post-its con los que organizar tu trabajo rozaba la locura, al igual que afirmar que la tierra era redonda: ¡pero funcionaba!.
Pronto aprendí una gran cantidad de cosas sobre Scrum, retrospectivas, Planning Poker, Product Owners etc. Pero no hubiera ido mucho más allá sin una Coach entusiasta del tema que me facilitara un montón de información y de lecturas para aprender la parte teórica de este universo en el que me estoy introduciendo. Con todo esto, sólo me quedaba engañar a mi pareja (Paloma Leufuman) para que me acompañara un Sábado a un evento lleno de informáticos y de posiblemente de freaks de un tema que para ella era completamente desconocido... ¡fue fácil! :) Este fue el empujón definitivo que necesité para asistir y las próximas entradas de este blog describirán las discusiones en las que participé y las conclusiones y pensamientos a los que llegué.