Preparation for BDD Tutorial

Next Friday I will be hosting a BDD Tutorial (fr2.1) in the context of XP Conference. For those planning to attend to this workshop consider that it is a hands-on session, so bring your machines. I have a preconfigured vm image with all the required tools in it, so please ensure to have Virtual Box installed in your machine.

If you prefer to not use the VM, then you should ensure to install:

  • Java 7 JDK
  • Maven
  • Git

Finally, please complete this form, so I can have a idea of how many people will attend to the workshop. This will allow me to adjust the activities of the workshop.

XP2015: Day 2 Summary

First of all I need to do a brief explanation of the conference layout. The main part of the conference takes place during Tuesday, Wednesday and Thursday. In addition to that, there are additional workshops on Monday and Friday.

So on Tuesday was the conference opening. As expected it started with the welcome by Maria Paasivaara (general chair). After that, Janne Järvinen offer a brief presentation of the Need for Speed program. A program in Finland that aims to join students and industry. Next there was the keynote by Linda Rising who talked about Continuous Retrospective. The keynote was fine, I wrote down some resources to check.

At the end of the keynote, every speaker of that day had 30 seconds to present his session and perform an invitation, good idea.

The next session I attended was Why we need architects by Rebecca Wirfs-Brock. It was interesting but nothing new for me, so in the middle I switched to the session by Nitor guys who perform a technical demo of their tool Willow which provides support for elastic cloud deployments. I really liked it.

In the afternoon I  attended to a Continuous Delivery session by Omenia guys, nice session. After that it was my first session: Continuous Delivery at Enterprise level with Jenkins and Octopush (the tool I developed with OLX guys). Everything went fine, the demo was successful but just in case I had prepared a short demonstration video. The slides are available here.

The next session I attended was a panel about Continuous Delivery. I stayed there just 15 minutes and I left the room because to my surprise the debate was very poor. I moved to another session about contracts by Antti Kirjavainen which was much better.

Finally we got to the best part of the day: the open space, yeah!!!! We had a marketplace to collect sessions for the three days. The facilitator was Charlie Poole and I liked his performance. After the marketplace we had like a cocktail and next to it the open space sessions started. We had 3 hours from 19.00 to 22.00 with up to 7 parallel sessions. For me the best session was the one I proposed: Programming practices. The goal was simple: share ideas/practices/tips among programmers. Four person joined the session: Daniel (a coach from Germany), Sebastian (a developer/trainer from Sweden), Wouter (a consultant from Holland) and Oller (a tech lead from Sweden). For me it was a great session, I really enjoyed it.

xp_day2_2

Session about contracts

xp_day2_3

Keynote by Linda Rising

City view from the conference center

XP2015: Day 1 Summary

The first session I attended was a workshop by Wouter Lagerwaij: Continuous Delivery with Docker and Jenkins Job Builder.  It was really really interesting, the speaker was an expert on the topic and the workshop’s materials were very properly prepared. I took several useful notes to review. When the workshop finished (on time, of course) we had lunch.

The lunch was self-service and included salad, fish, potatoes, cheese and bread. After lunch there was also coffee and tea available.

In the afternoon I had to choose between Fearless Change workshop by Linda Rising and DevOps and Continuous Value Delivery with Lego and Chocolate workshop by Dana Pylayeva. What do you think I choose? Yes, of course, the second one because is more related to the concerns I usually work. The workshop was fine, after brief conceptual introduction we worked in groups in an activity similar to El Pajarraco but with with a different focus: business value and team collaboration. I liked the activity and also the way Dana presented the DevOps theory.

The last activity of the day was a reception at the City Hall where we shared some drinks and soft food. It was a nice networking activity were I met people from several countries including: Holland, Slovenia, USA, Spain, Sweden, Brazil and Finland of course.

xp_day1 xp_day1b

 

De Colombia a Finlandia

El anterior post (hace unos 10 días) lo escribí estando en Girardot, una ciudad de Colombia que todo el año tiene una temperatura alrededor de los 30 grados. Mientras escribo este post, estoy en Helsinki, la capital de Finlandia, donde ahora (primavera) se promedian 12 grados de temperatura, pero que en una noche de invierno pueden llegar a 30 bajo cero. Entre uno y otro extremo pasé brevemente por casa para disfrutar del extraño otoño caluroso que azota Buenos Aires por estos días.

Pero no vine a Finlandia para compensar el calor de Girardot sino para participar de la conferencia XP2015. Llegué ayer luego de ~17 horas de vuelo con una escala de ~9 horas en Alemania. Después de semejante viaje, mis expectativas para la conferencia se han incrementado un poco más ;-)

Mirando el programa parece que habrá de todo: keynotes, muchas sesiones surgidas del call for papers, open space (en paralelo con las sesiones), clínica coaches (en  los coffee breaks), presentación de trabajos formales de investigación y actividades sociales (al anochecer).

Continuará…

Notas de mis actividades en Colombia

Por estos días me encuentro en Girardot, una bonita ciudad ubicada a unas 2 horas al sur de Bogotá. Estoy participando de diversas actividades enmarcadas en el Foro de Ingeniería en Sistemas organizado por la Universidad Piloto al cual fue invitado por gentileza de ingeniero Elkin Forero.

La primer actividad que facilité fue una sesión de Programación Orientada a Objetos en la cual hice un breve repaso de los hitos que han marcado la evolución del paradigma y sus implementaciones. (diapositivas aquí)

Otra sesión, ya un poco más avanzada fue un taller de TDD, del que participaron alumnos de la carrera de sistemas. Trabajamos con Java, JUnit y Eclipse. Me gustó mucho como salió la sesión. El código del ejemplo inicial está disponible aquí.

Aprovechando mi visita a la región, el ingeniero Wilson Gordillo me invitó a realizar una ponencia en la Universidad de Cundinamarca. Asistieron a dicha actividad unos 180 alumnos y docentes de distintas instituciones. En este caso hablé sobre la definición de “proyecto exitoso” y la visión de los métodos ágiles al respecto (diapositivas aquí). Luego de la disertación hicimos la dinámica de la fábrica de aviones de la que participaron unas 80 personas y que nos permitió reflexionar sobre cuestiones como spikes, estimación y definition of done.

Aún me quedan por realizar algunas actividades más antes de mi regreso a casa, entre ellas la continuación del taller de TDD que comienza en breves minutos.

Continuará…

 

Preparandome para XP 2015

A fin de mes voy a estar viajando a Helsinki para participar de la conferencia XP 2015, donde además de disfrutar de la conferencia como asistente, estaré participando como orador/facilitador dos sesiones.

La primera de ellas es una sesión del tipo Technical Demo en la que estaré mostrado Octopush, una herramienta open source que desarrollamos con la gente de OLX para orquestrar deployments en contextos de entrega continua.

La segunda sesión que estaré facilitando es un taller de Behaviour-Driven Development. El taller está dividido en partes, la primera con foco en el flujo de trabajo y en las cuestiones de colaboración/comunicación y la segunda con foco en las cuestiones técnicas. Para esto último utilizaremos una máquina virtual con todas las herramientas ya instaladas de cara a poder utilizar mejor el tiempo del taller y no perder tiempo en instalación y configuración.

xp2105

Preparando mi visita a la Universidad Piloto (Colombia)

La semana próxima (11 de Mayo) estaré de visita en la Universidad Piloto de Colombia (Girardot) para participar del V Foro Internacional en el contexto de la celebración de los 30 años del Programa de Ingeniería en Sistemas en la región.

Una de las actividades que realizaré durante mi visita será una Clínica de Programación Orientada a Objetos. Es la primera vez que voy a realizar esta actividad como tal. La misma reúne varias cuestiones que son parte del temario de las materias que suelo dictar y que estarán incluida en mi próximo libro sobre el tema.

Quiero agradecer especialmente a Elkin Forero y a Luis Carlos Garzón por la invitación

clinica_oo

 

Sobre el libro de experiencias Ágiles

En una de las sesiones del open space del Agile Open Camp propuse escribir un libro de experiencias contando casos de utilización de métodos ágiles en proyectos reales. La idea venía rondando en mi cabeza desde hacía ya bastante tiempo, creo que desde que leí el libro Anthology de la gente de ThoughtWorks, allá por 2009. Este libro no me pareció deslumbrante, pero me gustó y lo que más me llamó la atención fue su formato: el libro es básicamente un compendio de artículos de diversos autores, donde cada capítulos esto totalmente independiente del resto. Al mismo tiempo la escritura de Construcción de software, me generó muchas ganas de seguir escribiendo pero de forma más liviana (escribir este libro nos llevó unos 2 años) experimentando con alguna plataforma de autoedición.

El formato inmersivo del AOC me pareció ideal para hacer hacer un especie de hackaton de escritura, así que llegado el momento hice la propuesta.

De esta forma fue que el sábado 18 en el contexto del AOC,  justo antes de la cena nos sentamos a escribir la primera tanda de casos. Para el momento de la cena y en apenas 2 horas ya teníamos la primera versión cruda de 6 casos. Luego a lo largo de la semana fueron llegando más capítulos. Finalmente este último fin de semana trabajamos en la revisión/corrección y demás detalles de publicación. Para la escritura utilizamos lenguaje Markdown y trabajar coordinamos utilizamos GitHub. Finalmente para la edición, seguimos la sugerencia de Martín Salías y utilizamos la plataforma GitBook.

El resultado de este experimento es un libro gratuito que reúne 15 relatos de agilistas Argentinos. Algunos relatos cuentan prácticas/técnicas que funcionaron y otros cuentan prácticas/técnicas que no funcionaron lo cual también considero de gran valor.

Como coordinador/editor quiero agradecer a todos los autores que se sumaron a la iniciativa de este experimento. También quiero destacar y agradecer el impecable trabajo de revisión realizado por Thomas Wallet y la inagotable creatividad de Mauro Strione en el diseño de la portada creada sobre la base de una foto de Pablo Tortorella.

El libro está disponible para descarga gratuita en diversos formatos en: http://nicopaez.gitbooks.io/libroagileaoc2015/

Ejercicio de estimación

Un cuestión que siempre me hizo ruido de mi formación en FIUBA es el hecho de que en la materia que estudie métodos de estimación nunca me hicieron aplicarlos, o sea nunca me hicieron estimar, ¡cuac! Terminé la materia y sabía “los algoritmos de estimación” de memoria, pero en el contexto de la materia no los había aplicado nunca. Por suerte para esa altura de mi vida, ya tenía unos cuantos años de trabajo en la industria, con lo cual ya conocía algunos de los métodos vistos e incluso ya los utilizaba en mi trabajo diario.

Siendo consciente de esa falencia en mi formación, cuando comencé a dictar Ingeniería de Software en UNQ, me ocupe de incluir en la materia una clase práctica de estimación. El ejercicio que suelo utilizar para esa práctica se llama La fábrica de aviones y lo aprendí en un taller de Agiles 2009 en Florianópolis, Brasil.

El foco del ejercicio está en estimar la velocidad de un equipo y requiere simplemente varias hojas de papel tamaño a4 (~10 hojas por alumno). Describo a continuación la dinámica:

  1. Se divide a los alumnos en grupo5 (~5 por grupo)
  2. Cada grupo representa un fábrica de aviones y se les pide que indiquen que cantidad de aviones puede construir en un lapso de 10 minutos
  3. La forma de los aviones queda a criterio de cada grupo, pero deben asegurarse que el diseño elegido pueda volar X cantidad de metros (suelo pedir 5 metros)
  4. Se pide que cada avión cumpla con ciertos criterios estéticos: numéro de serie en las alas, nombre del equipo constructor a ambos lados, 2 puertas (una cada lado) y 6 ventanas (3 de cada lado). Todo esto se dibuja con lapicera en cada avión.
  5. Explicada la consigna se les pide a los alumnos que indiquen que cantidad de aviones pueden generar en 10 minutos. Difícilmente pueden hacer una estimación “razonable” sin haber generado al menos un avión. Si los alumnos toman conciencia de eso y aplican lo visto en la materia, deberian pedir una iteración para hacer un spike: generar un par de prototipos de avión y ver cuales son las implicancias de construirlos.
  6. Se les da entonces 1 iteración para generar algunos prototipos. Al final de la misma deben entregar el prototipo que copiarán las siguiente iteraciones y deben decir también que cantidad de aviones se comprometen a entregar al final de la siguiente iteración (básicamente tienen que estimar su velocidad).
  7. A partir de aquí se realizan iteraciones verificando al final de cada una que los aviones entregados cumplan con las condiciones previamente indicadas (3 y 4). Sólo se contabilizan aquellos aviones que cumplan con todas las condiciones, incluyendo el volar al menos X distancia.
  8. Luego de 3 iteraciones se ve que la velocidad del equipo se estabiliza.

Algunas variantes que pueden utilizarse sobre esta dinámica básica son:

  • Trabajar sobre las condiciones de aceptación y poner el foco en el Definition of Done
  • Modificar los equipo o la duración de las iteraciones para evidencias como eso afecta a la velocidad

Si alguno de los lectores llega a utilizar está dinámica me gustaría que me comentara los resultados.

AOC: Vampiros, hombres-lobo y DevOps

Cuando el equipo organizador del AOC me propuso dar una de las charlas plenarias consideré inicialmente 2 o 3 temas posibles y luego de dar un par de vueltas decidí cortar por la sano y hablar sobre cuestiones de mi día a día. En ese sentido mi actividad actual se reparte entre desarrollo de aplicaciones y trabajo de consultoría en cuestiones relacionadas a automatización de pruebas y despliegue continuo.

Al tratarse de un tema de mi trabajo cotidiano ya tenia mucho material a mano pero tenía que sentarme a ordenarlo. Decidí utilizar el aplicativo de Google para armar las diapositivas y me puse a trabajar. A medida que iba armando los slides iba ensayando la presentación incrementalmente. Cuando logré un esqueleto mínimo de la presentación,lo compartí con mi pareja para tener feedback y a partir de eso seguí trabajando en el tramo final. Las cuestiones visuales fueron lo último que ajusté. Una vez conforme con el entregable generado, corrí un ensayo de punta a punta y di por cerrado el trabajo.

Llegado el momento de la charla plenaria, encendí mi cronómetro y empecé a hablar. Si bien había trabajado bastante en la presentación, yo mismo me sorprendí cuando terminé  la presentación y vi que en la cuenta regresiva del cronómetro restaban tan sólo 2 segundos. Creo que nunca en mi tuve tal precisión en un presentación.

Aquí están disponibles las diapositivas que utilicé.

mi_sesion_aoc_2015