Historias de usuario

AVISO: LADRILLAZO (más de 2500 palabras). Creo que he superado a @eamodeorubio.

El pasado martes, en la reunión trisemanal del grupo de #madriagil, nos juntamos un grupo bastante numeroso a pesar de las bajas y la dura competencia del fútbol. Quiere ello decir que hay renovación en las personas y que se ha consolidado el trabajo de evangelización que entre todos hemos ido haciendo durante los casi dos años que llevamos. Somos ya tantos que no importa quién viene o deja de venir porque el “retorno de la inversión” para todos los que asistimos (regular o irregularmente) está garantizado.

Jesús Jiménez (aka @jjballano) propuso que hicieramos una sesión práctica sobre historias de usuario pero empleamos la primera media hora en introducir los conceptos más básicos (la mayoría, si no todos, contenidos en el libro de Mike Cohn: “User Stories Applied”; imprescindibles al menos los dos primeros capítulos). Entre otras cosas hicimos mucho hincapié en las tres C (Card, Conversation, Confirmation) y en que una buena historia debe ser INVEST (Independent, Negotiable, Valuable, Estimable, Small and Testable).

He de reconocer que monopolicé mucho la reunión. Las historias de usuario es un tema que me fascina porque es justamente la frontera entre lo púramente técnico y lo puramente de negocio. (Cuando digo negocio no necesariamente hablo de esto sino más bien de esto otro). Además, debo agradecer a Jesús la paciencia que tuvo conmigo porque desde el principio le fastidié provocando una “mini-incepción“. En mi opinión, es un error que cometemos demasiado a menudo: no obligar al dueño de producto (asumimos que tenemos uno) a reflexionar sobre la causa raíz de por qué tenemos que construir la aplicación que nos está encargando. Trataré de reproducir (en la medida que mi memoria me lo permita) la discusión que tuvimos.

El lienzo en blanco

Antes de empezar ya tuvimos una pequeña refriega metodológica: que si empezar directamente por las historias de usuario, que si empezar por los roles o incluso que si empezar por esa mini-incepción que yo proponía. Bueno, como me levanté y me puse en la pizarra rotulador en ristre, pues, ejem, ya os podéis imaginar qué hicimos… :-D  Ahora en serio, exploramos un poco sobre las motivaciones del cliente para arrancar el proyecto como manera para empezar a familiarizarnos con el problema y para establecer una misión para el proyecto. De esa manera, podemos evitar alejarnos del objetivo principal si en algún momento empezamos a escribir una historia que no aporta valor para conseguir esos objetivos declarados del proyecto. Así, cuando se da esa situación, podemos replantearnos los objetivos (que no deberíamos porque se supone que serán bastante sólidos) o revisar si esa historia es oportuna o no en el contexto del proyecto.

Incluso alguien (lo siento, no recuerdo quién fue exactamente) preguntó qué pasa si viene el comercial con una idea del producto y se creó un breve pero intenso debate. <offtopic>Yo, es que cuando oigo la palabra comercial, es que me entra un pitido en los oidos y tardo en recuperar la audición. :-) Es broma, amo a los comerciales, son los que hacen posible que lleguen los proyectos a los talleres… pero, claro, llamar comercial a alguien que vende motos…. Ea, lo voy a dejar que me caliento. :-( </offtopic>

Jesús quería algo así como una aplicación para que el grupo de #madriágil pudiera quedar sin hacer mucho ruido en la lista de Agile-Spain. Para arrancar la discusión empezamos escribiendo ese objetivo en la pizarra y le ofrecí como solución un googlegroup alternativo. Mmm. A Jesús no le gustó. Él quería gastarse su dinero en una aplicación y yo le estaba ofreciendo una solución muy sencilla. Así que seguimos hablando… conversando… y llegamos a que también quería centralizar la información y actividades que hace el grupo en un único sitio. ¡Ajá! Lo escribimos en la pizarra. Y para volver a fastidiar un poco más (y acercarme a los cinco por qué) le dije que en el googlegroup se queda toda la información a modo de histórico.

OBJETIVOS:

  • Minimizar los correos a la lista de Agile-Spain para quedar en Madriágil
  • Centralizar toda la información que genera Madriágil : elección de fecha / lugar / tema + histórico

Seguimos escribiendo algunos roles que fueron apareciendo durante la conversación y sus responsabiidades principales. Nos salieron el “miembro de madriágil” (que podía identificarse) y “cualquier persona” (que podía ver los eventos publicados). Pensé que íbamos a ir por el camino de las tarjetas de CRC, pero al final aquello no cuajó y avanzamos en la conversación hasta concluir que lo que Jesús quería verdaderamente era simplificar la elección de lugar, fecha y tema para las reuniones del grupo y además tener un histórico que se pudiera consultar de todo eso. ¡Bien! Ya teníamos la primera historia de usuario a punto para ser escrita:

Como miembro de madriágil
Necesito crear un evento
Para que cualquier otra persona pueda verlo (y decidir apuntarse)

(Nota: en las tarjetas que escribimos yo usé el verbo Quiero en vez de Necesito, aunque realmente durante todo el rato hablamos de Necesito.)

Confirmación

En el grupo hubo mucha discusión al respecto porque todos pensaban que se trataba de una historia épica y yo, para provocar (otra vez), les dije que para mi era un 1 y que al llegar a casa la tendría hecha. Mmmm… Era como haber sacado las cartas del planning póker y que todos sacaran un 100 y yo un 1. Algo no encajaba. ¿Qué sabía yo que ellos no sabían? ¿Qué sabían ellos que yo no sabía? ¿Qué estabamos suponiendo cada uno de nosotros? Conclusión: faltaba más conversación. (Otra vez). Para avanzar un poco escribimos la “definition of done” o, para los que echen de menos un poco de español en los términos, “criterio de aceptación” (¿no habíamos dicho “Confirmation” en CCC y “Testable” en INVEST?).

Confirmación:
En una página web (de momento) puedo ver los detalles del evento: Fecha / Lugar / Facilitador.

Llegados a este punto ya el cliente (Jesús) había tomado un montón de decisiones. La más controvertida fue la de que fuera una página web. Luis Fraile, por ejemplo, recuerdo que ofreció mostrar el resultado en un RSS. A mi me parece que eso es tomar demasiadas decisiones en una fase del proyecto donde aún hay mucha incertidumbre. Yo, por otro lado, ofrecí que fuera el equipo de desarrollo el que ofreciera la solución que le resultara más fácil (barata) dentro del timebox de la primera iteración. Al fin y al cabo, hacemos un desarrollo iterativo e incremental justamente para poder dar espacio a la innovación, a explorar aquellas soluciones que al dueño del producto no se le han ocurrido y que si toma demasiadas decisiones evita que aparezcan. Es el principio del “last responsible moment” (ver “Defer Commitment” en el libro “Implementing Lean Software Development” por ejemplo). Jesús se sintió bastante incómodo con mi propuesta. Era como si le estuviera diciendo que él no sabía lo que quería… :-) Curioso, porque realmente Jesús estaba jugando ese papel: el del cliente que no tiene muy claro lo que quiere. Lógicamente, tanto él como yo estábamos haciendo un poco de parodia de la vida real, por lo que nada es ni tan blanco ni tan negro, pero la parodia sirvió muy bien para escenificar cómo existe una tensión entre el técnico-que-sabe-mejor-que-el-cliente-lo-que-el-cliente-necesita y el cliente-que-sabe-mejor-que-el-técnico-cómo-se-deben-hacer-las-cosas. Mi conclusión: hay que tratar de dejar el qué al dueño del producto y el cómo al equipo. En medio, miles de claroscuros y matices que no caben en este ladrillaco.

La potencia del criterio de aceptación es que nos puede servir de guía para la aceptación de la historia de usuario, bien en la demo, bien como guía para el propio proceso de desarrollo si hacemos ATDD y somos capaces de automatizar este criterio de aceptación (p.ej. con Cucumber, Fitnesse, Concordion, etc). Por ello, para que nuestras pruebas de aceptación automatizadas (también conocidas como especificaciones ejecutables) tenga un mayor recorrido, nos conviene no imponernos restricciones tecnológicas muy fuertes. Por ejemplo, decir que los detalles del evento se verán en una página web o en un RSS puede llegar a ser limitante si en el futuro queremos cambiar el enfoque del sistema y basarlo en otra tecnología. (Ya sé, es un caso algo extremo…) En cualquier caso, y para no abundar más en este asunto, os remito a la página 18 del libro de Cohn (“Negotiable” en el capítulo 2) y la 79 (“Keep the UI Out as Long as Possible” en el capítulo 7).

Tras romper la parálisis que siempre asoma cuando la pizarra está vacía y, en parte, superar también esa sensación de agobio por no definir todos los detalles, pasamos a la siguiente historia.

¿Qué más quiere el señor?

Ya habíamos visto que, de alguna manera, el equipo ya podría comenzar a iterar sobre la primera historia, que encajaba bien con el primer objetivo de reducir el ruido en la lista de Agile-Spain a la hora de organizar las reuniones del grupo de . Pero claro, no parecía suficiente. Así que seguimos hablando con el cliente y llegamos a algo como esto:

Como miembro de madriágil
Necesito apuntarme a un evento
Para reservar mi plaza

Aquí tuvimos muchísima controversia porque no estaba muy claro cuál era la mejor manera de escribir el valor que aportaba esta historia de usuario. Está claro que el valor (el “para”) debe ser descrito desde el punto de vista del rol que describe esa necesidad. Algunos decían que el valor que aportaba esta historia era que así la organización podía adaptar el lugar de reunión a la cantidad prevista de asistentes. Otros que era la garantía de tener una plaza reservada para asistir a la reunión.

Confirmación:
El miembro X [que realiza la petición para asistir al evento E] tiene reservada su plaza en el evento E.

(Nota: Entre corchetes una modificación que he introducido yo para dejarlo más claro. Pero no fue así exactamente como la escribimos durante la reunión.)

De nuevo vemos que no hemos tomado muchas decisiones y dejamos al albedrío del equipo tomar la decisión técnica. Sin embargo, esto provocó mucho debate porque… ¿desde qué punto de vista se hace esta comprobación de que la plaza en el evento está reservada para el miembro que ha realizado la petición? ¿Desde el punto de vista del sistema? Con una lista de reservas y comprobar que la de la persona en cuestión está presente sería suficiente. ¿Desde el punto de vista del usuario (el que escribe la historia de usuario)? En este caso sería algo como que el sistema proporcionara una confirmación de que se ha efectuado la reserva adecuadamente (bien con un mensaje en la pantalla, bien con un correo electrónico, un SMS…) Lo cierto es que nunca antes me había parado a pensar sobre esta posibilidad, pero después de reflexionar sobre ello, esta última opción tiene más pinta de que otra historia de usuario.

Más sobre el criterio de aceptación

La discusión nos llevó justamente a que Jesús escribiera esta nueva historia:

Como miembro de madriagil
Necesito tener una confirmación de que me he apuntado al evento
Para saber que tengo mi plaza reservada

Y estudiar las pruebas de aceptación que deberíamos hacer nos llevó a otra interesante discusión.

Confirmación:
En el caso de que sí tengo plaza: veo en pantalla un mensaje de confirmación [y recibo un correo-e]
En el caso de que NO tengo plaza: –> ¿cómo sé sabe que no tengo plaza?

Aquí discutimos si era un smell (señal de alarma de que algo estamos haciendo mal) el tener más de una prueba de aceptación para una historia. Personalmente creo que no, aunque sí es cierto que trato de que sea siempre una. En este caso, lo que sí observamos es que para poder implementar esta historia era necesario antes saber cómo distinguir si aún había plazas libres en la reunión o no, lo cuál sí que tiene un cierto tufillo porque se supone que las historias de usuario deberían ser “Independent”. Pero lo cierto es que no tengo una opinión bien formada al respecto, así que me gustaría saber cuál es la vuestra.

PomodoroExhaustedException

El tiempo se acabó y no nos dió tiempo ni de tener suficientes historias para ver cómo priorizar el backlog, ni de estimar las historias ni de ver cómo partiríamos esas historias de usuario en tareas. Sin embargo, creo que la mayoría quedamos muy satisfechos porque hicimos muchas reflexiones en voz alta, las contrastamos con más gente (algunos con mucha experiencia, como es el caso de Luis Fraile), y ése es uno de los grandes valores de estas reuniones: donde profesionales de diferentes orígenes, experiencias, tecnologías, motivaciones… nos juntamos para, en un ambiente generoso y seguro, donde sabemos que nadie nos va a cuestionar por saber más o menos, donde podemos equivocarnos y arriesgarnos sin miedo, podemos compartir nuestras dudas y ofrecer nuestras respuestas y reflexiones.

Retrospectiva

Aunque quede un poco off-topic con el título del artículo, no quería olvidarme de la retrospectiva. Los asistentes más habituales a las reuniones de sabemos que no somos un grupo muy disciplinado, lo que se evidencia en nuestro poco respeto a una de las prácticas ágiles más importantes: la retrospectiva. Así que conseguir acordarnos de que debíamos hacer la retrospectiva es remarcable en sí mismo. :-)

Esta vez me apetecía mucho ver a otro hacer una retrospectiva, éramos un grupo muy numeroso y seguro que podría haber aprendido algo, aunque solo sea por estar en el rol de asistente. Ofrecí el rotulador pero no hubo suerte. Así que hice lo que hago últimamente (mi pequeña receta siempre en constante actualización):

1) recordé a todos el objetivo que perseguimos con la retrospectiva: la mejora continua

2) una carita sonriente: para agrupar todo aquello que nos gusta, que nos hace sentirnos cómodos y que queremos seguir repitiendo

3) una carita triste: para agrupar todo aquello que no nos gusta, que nos molesta y que queremos dejar de hacer o que queremos impedir que siga ocurriendo

4) una bombilla: para agrupar todas aquellas ideas que se nos ocurran que nos gustaría probar para mejorar cualquier aspecto de lo que hacemos

5) una flor: para agrupar los nombres de aquellos a los que queremos agradecer algo en especial (esto último lo aprehendí de una visita que nos hizo Angel Medinilla hace ya mucho tiempo al grupo de )

El resultado de la media hora fue el que veis en la foto (aunque sea de mala calidad). Cierto es que a esa hora (las 21:30 aprox) ya estábamos bastante cansados y muchos ya con más ganas de ir a por unas cervezas y a ver si veían la segunda parte del Madrid que otra cosa. :-)

Más comentarios sobre la retrospectiva en este hilo de la lista de Agile-Spain. (DISCLAIMER: No me hago responsable del contenido de ese hilo) :-D

Y para terminar una muy amena charla en un irlandés con varios espartanos del proyecto de la muerte y un polaco en bicicleta. :-)

Muchas gracias a Nayade y en particular a Manuel Castro, que siempre ofrece el espacio y parece que siempre rechazamos su oferta. A ver si ahora que ya hay menos peso ágil en IPSA podemos retomar la vieja idea de ir rotando por diferentes localizaciones de Madrid y así favorecer el que, en algún momento que se me antoja no muy lejano, haya más de un grupo agilista en Madrid. Algo como un Madrid Sur y Madrid Norte o Madrid A-6 y Madrid A-4 o Madrid Vallecas y Madrid Chamberí (por dar ideas). ;-)

ACTUALIZACIÓN:

Lo siento, olvidé comentar dos cosas:

  1. La discusión sobre si identificar al “miembro de madriágil” era una historia de usuario prioritaria. Fue quedando un poco postergada porque no vimos que fuera realmente algo que mereciera nuestra atención aún. Pero tenía pinta de ser una de esas historias de usuario “técnicas” muy socorridas para superar nuestro “horror vacui”. :-)
  2. Surgió en la retrospectiva una idea muy interesante que no quería que se perdiera. Creo que fue Rafa de Castro, pero puedo equivocarme fácilmente en la atribución, quien comentó que se podrían hacer UserStoryKatas (y como consecuencia también UserStoryDojos). La idea sería algo así como ejercicios para practicar la escritura de historias de usuario. Es decir, practicar no sólo la escritura de la tarjeta sino, sobre todo, la conversación y la confirmación. (Quizás enlace esto también con el concepto que Gojko Adzic promueve de las sesiones de especificación)

Muchos temas pendientes

Tengo pendientes ya demasiadas cosas. Tantas que me van a salir hasta telarañas (como las de la foto). No sé si tengo justificación para todas, pero tampoco es que vaya a cambiar nada el poner excusas. Así que voy a hacer un pequeño resumen (otro) del estado de mi vida y así, de paso, me ayudará a poner en orden mis prioridades.

Contenidos recuperados

Tengo pendiente la segunda parte de la explicación de cómo conseguí importar mi viejo blog usando Groovy y la API de Google Reader. Esto es algo que requiere bastante esfuerzo pues, aunque tengo el código escrito, hay que explicarlo convenientemente (no es mi mejor pieza de código y no es suficientemente autoexplicativa) y además tengo que buscar un plugin de WordPress o algo que permita que el código fuente se vea decentemente. Se admiten sugerencias.

Claro, ahora que Google ha tenido a bien devolverme el viejo blog, algunas tareas de mejora sobre el proceso de recuperación pierden interés (me refiero a que hay anuncios que han quedado empotrados en los artículos importados y a que los enlaces han quedado apuntando al viejo blog) y aparecen necesidades nuevas. Lo primero que he hecho ha sido hacerme una copia de seguridad tanto de los contenidos -incluyendo los comentarios y la plantilla- y lo segundo poner un aviso de que me he mudado “para que conste”. Así que ahora he pensado que lo ideal sería importar esa copia de seguridad al nuevo blog, pero tengo que hacer una prueba en local y todo eso antes de hacer el cambio… y me está dando una pereza…

En cualquier caso, prometo escribir (pronto) la segunda parte del artículo sobre cómo importé el contenido del viejo blog. Aunque sólo sea porque lo prometido es deuda.

Reunión Agile Madrid

Tengo también pendiente el resumen de la última reunión del grupo local de Agile Spain en Madrid. Lo que pasa es que Alberto Peña (@plagelao) ha hecho tan buen resumen en su blog que casi que me voy a quedar en dejar constancia y poco más. Ya he subido las diapositivas que utilicé, pero no subiré las notas que escribí para ayudarme porque realmente no aportan nada a la presentación. Sólo para quede constancia: no es ni mucho menos mi mejor presentación; y me alegro mucho, mucho, de que se me olvidara comprobar el espacio en disco antes de empezar a grabar el video, y vuelvo a pedir disculpas públicamente a mis compañeros del grupo de Agile Spain por no haberme preparado bien la presentación. Podríamos haber aprovechado mucho más la reunión. Aunque son gente estupenda: no hicieron sangre conmigo y además me ayudaron a que el resultado final de la reunión fuera muy positivo.

Mi resumen de la discusión es el siguiente:

La confianza es el valor más difícil de alcanzar dentro de un equipo que se quiera autoproclamar ágil. Confianza en sí mismos, confianza entre ellos y confianza hacia el exterior (incluyendo a otros departamentos y, sobre todo, al cliente).

Yo siempre había pensado que la clave estaba en el coraje y la autoexigencia, pero después de esta reunión me di cuenta de que éstos son valores individuales, que requieren un esfuerzo individual. Pero el mayor obstáculo para ser ágil es un obstáculo colectivo: la confianza. Es relativamente fácil confiar en uno mismo, pero confiar en los demás… ay, ay, eso ya es otra cosa. Y que los demás confíen en nosotros… eso ya ni te cuento. ¿Verdad?

Agilismo.es

También estoy arrancando agilismo.es con el inefable Xavi Gost. Queremos hacer de agilismo.es un portal de referencia para el agilismo desde su perspectiva más de las trincheras. Hay ya muchos portales en español sobre Scrum y en general desde un punto de vista de la gestión de los proyectos. Por ejemplo, Proyectos Agiles (que dirige Xavier Albaladejo) es muy buen punto de referencia para esto. También Scrum Manager (iniciativa de Juan Palacio). Pero hemos visto que hay una gran carencia de contenidos de calidad cuando nos ponemos a buscar, desde el punto de vista de los desarrolladores, referencias en español sobre Extreme Programming, Integración Continua, TDD, Programación por Parejas, etc.

Ahora mismo es poco más que una “página güeb” donde este tipo y yo nos ofrecemos para dar coaching, pero no dudéis que va a ir creciendo rápidamente, con contenidos propios y de calidad.

iExpertos.com

Con Carlos Blé y su iExpertos.com tengo una relación muy curiosa. Además de proporcionarme “por la cara” el wordpress donde tengo mi nuevo blog, Carlos se ha empeñado en que yo puedo dar cursos. Bueno, a mi también me ha parecido buena idea, claro. Yo le había propuesto dar un taller sobre Integración Continua, pero no cuajó. Ahora parece que hay posibilidades de uno sobre Refactoring. Éste es más complicado porque requiere preparar muy bien el material. Pero me parece un taller muy, muy bonito. Ya veremos si sale y si lo puedo hacer yo o lo hace el propio Carlos, que de eso también sabe.

Por otro lado, hace tiempo le comenté que podríamos hacer un podcast “agilismo.es powered by iExpertos.com” y el tío ya tiene casi todo montado. Hasta hemos tenido que decir que no a Jorge Rubira para grabar un podcast de JavaHispano sobre el Agile Open Spain 2009, porque queríamos sacar el primer podcast antes de Navidades y Jorge ya no tenía hueco. Carlos es un tipo muy emprendedor e incluso se ha buscado un amigo que nos ha hecho una sintonía para no tener que pagarle a Ramoncín. Je, je.

También estamos pendientes, junto con Gregorio Mena, de arrancar una serie de webinars. Esto último es mucho más complicado incluso que el podcast, que ya tiene miga. Pero si conseguimos darle forma va a ser un bombazo.

¡Ah! Y el ya casi famoso libro de TDD de Carlos… adivinad quién ha escrito el prólogo… y no es el típico prólogo. Pero para saber de qué va lo tendréis que descargar. ¡Que será gratis!

Trabajo

Y la noticia de la semana es que ya tengo trabajo. La verdad es que ya casi tenía trabajo. Estaba a punto de cerrar un acuerdo para teletrabajar de “freelance” programando un par de aplicaciones JSF en un equipo scrum de tres personas (una jefa de proyecto, un junior y un servidor). Iba a ser mi primera experiencia como trabajador por cuenta propia. Pero hablo en pretérito imperfecto porque ayer por la mañana fui a una entrevista a la que había llegado convocado a través del INEM. (Sí, ya sé que es un poco extraño, pero ha sido así). Y resulta que he aceptado trabajar en un proyecto de 6 meses para el Ayuntamiento de Alcobendas. Bueno, y ellos también han aceptado trabajar conmigo, claro.

Estoy seguro de que va a ser un proyecto muy bonito en el que voy a poder aprender mucho. Creo que será muy bueno también para el Ayuntamiento, para los empleados a los que voy a ayudar y en última instancia para los ciudadanos. Durante la entrevista les expliqué por encima esto del agilismo y “alucinaron”. Claro. Les gusta mucho eso de ir teniendo “software que funciona”. Pero a continuación les cambia el gesto cuando se acuerdan de “las cosas de palacio van despacio”. Je, je. Dentro de un par de meses ya veremos quién ha sido más testarudo: si yo y mi “agilismo de guerrilla dentro de la recalcitrante administración pública” (parece el título de una peli de miedo) o ellos con su “no, no nos moverán”. Sospecho que ganaré yo. Mis armas son mucho más poderosas. Estoy dotado de un optimismo a prueba de bomba y ellos no. Todavía.

Coding Dojo

¡Pero esto NO es todo, amigos! El día 22 (el día de la Lotería) estamos montando un “coding dojo” en las intalaciones que Okuri Spaces tiene en el barrio de Tetuán (en Madrid). El maestro Xavi Gost vendrá a darnos una clase de su kung-fú programando en Java una aplicación para hacer un “pomodoro”. Y eso en un “pomodoro” de duración: 25 minutos. La sala es pequeña (apenas cabrán sentados unas 20 personas), pero lo grabaremos, tranquilos. Será gratis y la idea es que nos sirva para promocionar agilismo.es powered by autentia, que si todo va bien será una iniciativa muy interesante relacionada con la formación de calidad y de la que por el momento no os puedo comentar más porque tampoco hay mucho más y porque, ¡qué caramba!, hay que crear un poco de expectación.

En fin, esperemos a ver qué tal nos lo pasamos en el Dojo y si alguno de vosotros se decide a venir, no olvidéis saludarme, que a todo bloguero le hace ilusión conocer a sus lectores.

¡Vaya semanita!

Me da mucha rabia no poder hipervincularme a mi mismo porque Google me ha robado mi blog, pero trataré de sobrevivir sin ello de momento.

No hace mucho explicaba que, aunque estoy desempleado, tengo mi agenda bastante ocupada. Esta semana ha sido un buen ejemplo:

Lunes

Para empezar, la semana ha sido más corta porque en Madrid el lunes fue festivo (“La Almudena”) y yo estuve de excursión familiar todo ese fin de semana largo. Estuve en el Valle del Jerte pasando unos días. En mi caso no sirve para quitar “estrés” ni cansancio, sólo se sustituye por otro tipo de “estrés” y cansancio. :-)

Martes

Tengo una vida doméstica muy rica. Lo cuál hace que a veces tenga que pasar mucho tiempo poniendo lavadoras y similares. :-) Pero entre lavadora y lavadora tuve tiempo para actuar como moderador en la lista de Agile Spain y dar “un toque” respecto a la Netiqueta. Esto de la Web 2.0 nos hace olvidar a veces que nuestra manera de comunicarnos debe adaptarse al medio. Pero bueno, también estoy seguro de que tiene mucho que ver con que el grupo de personas que participaban en la lista de Agile Spain ha crecido mucho en las últimas semanas y eso, necesariamente, obliga a que las costumbres se vayan ajustando.

Miércoles

El miércoles tuvimos reunión del grupo local de Agile Spain en Madrid. Agustín Yagüe (@ayague) nos explicó Kanban y estuvimos discutiendo sobre cuándo era conveniente usarlo. El resumen de Alberto Peña (@plagelao) es estupendo (así, de paso, me ahorro escribir más). Eso sí, una fotillo del “afterhours” donde la charla siempre es demasiado corta (sobre todo para los que tenemos que volver en cercanías).

El miércoles también empecé un mailing a algunos contactos para avisar de que vuelvo a estar dispuesto para incorporarme al mercado laboral. Efectivamente, he puesto el cartel de BUSCO EMPLEO. Así que ya sabéis, si conocéis a alguien que pueda necesitar un perfil como el mío para transformar sus equipos de desarrollo en equipos de alto rendimiento, no dudéis en darle mi CV. Lo siento, no os puedo ofrecer comisión, pero sí mi agradecimiento.

Jueves

El miércoles había grabado con la webcam del portátil la presentación sobre Kanban. ¡4 Gigas! Con lo que me pasé casi todo el día liado con conversiones de formato, subir el resultado a Vimeo, configurar el canal AgileSpainTV y el twitterfeed para avisar por Twitter. Incluso me curré una sencilla portada para el video, aunque ya estaba muy cansado y ha quedado como un “thumbnail”, que no me parece lo mejor, pero así se quedará por ser el primero.

Viernes

De madrugada me di cuenta de que Skynet me prometía que iba a restaurar mi blog en un día laborable. ¿Eso es calendario español? ¿USA? ¿China? No sé, no sé… Pensaba que Skynet tenía vocación de compañía global. ¿Acaso no saben que hay otros calendarios laborales? Podrían indicar a qué calendario laboral se refieren. ¡Ggrrr! ¿Se nota que estoy de uñas con esta gente porque me han robado mi blog?

A pesar de todo el maltrato, estuve jugando con Google Wave. Está muy verde. Mucho. Pero tiene pinta de que va a ser una plataforma de colaboración “brutal”. Yo ya estoy empezando a usarlo para colaborar con algunos a los que estoy enredando en cosas que tienen que ver con agilismo.es. De momento agilismo.es está más verde incluso que GoogleWave, pero creo que en el futuro será algo de lo que me podré sentir muy orgulloso e incluso vivir de ello (¡espero!).

También tuve mis más y menos con Juan Quijano (@Bendem) sobre si hay que poner comentarios o no en el código. Lo doy como batalla perdida. :-)

Sábado

Curso de Grails organizado por Escuela De Groovy (@escueladegroovy) y JavaHispano (@javahispano). Nacho Brito explica muy bien. Se nota que sabe de lo que habla. Me da un poco de “miedito” esto de Groovy y Grails por varias razones:

  • Me dan miedito los lenguajes dinámicos porque me gusta tener más control en tiempo de compilación y apoyo desde el IDE.
  • No me gusta el “scaffolding” por defecto porque da la sensación de que hacer aplicaciones CRUD-like está bien. ¡Y no es así!

Pero he de reconocer que hacerse una consola de administración con Grails es “cosa de niños” y que es ideal para arrancar una aplicación rápidamente y comenzar a obtener un retorno de la inversión rápidamente. Esto encaja muy bien con un enfoque ágil: iterativo e incremental.

Groovy es un lenguaje muy potente y una plataforma que ayuda mucho al
desarrollador. Está claro que ahorra muchas horas de programación
repetitiva.

Un cotilleo. Durante el café, Abraham me ha contado que están montando algo para Febrero relacionado con Spring. ¡Sólo puedo decir eso! ;-)

Y después de comer me he puesto a escribir este post, que iba a ser telegráfico pero ya ves… Je, je… y aún queda la noche del sábado y el domingo.

NOTA:
A todo esto, mi viejo blog sigue expropiado por Skynet.