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

Mis notas sobre AOC 2015

El fin de semana pasado participé del Agile Open Camp 2015. Como ya había mencionado, el evento se llevó a cabo en la Estancia del Carmen ubicada en las afueras de Bariloche.

Sin duda en varios aspectos este evento fue el mejor evento que participé en mi vida. Paisaje, logística, contenido, emotividad, actividades sociales y recreativas son algunos de las aspectos destacados del evento.

Creo que fue clave el hecho de que los participantes estuviéramos alojamos en el mismo lugar de la conferencia y al mismo tiempo que el lugar estuviera reservado (casi) exclusivamente para el evento. Esto permitió realizar diversas actividades «extra programa» luego de finalizadas las sesiones «formales» como ser juegos, espacios de meditación y guitarreadas hasta bien entrada la noche. Una de esas actividades extra formales fue la escritura de un libro (tema que compartiré en otro post).

Entre los momentos que más me impactaron están:

  • La visita al Invap, una empresa del estado dedicada a desarrollos de alta tecnología: radares, satélites, reactores nucleares, etc.
  • La charla Héctor Otheguy gerente general del Invap
  • El espíritu colaborativo que se vivió a la largo del todo el evento incluso en cuestiones casi domésticas como poniendo y levantando la mesa, preparando la comida y sirviéndola cuando estuvo lista
  • El exquisito cordero que comimos el sábado a la noche seguido de un fogón que incluyó guitarra, armónica, canciones y payadas.
  • La charla de Alan a la orilla del lago Gutiérrez con los cerros y el bosque de fondo
  • El cierre del evento con palabras emotivas de los organizadores y el entusiasmo de todos los participantes

Más allá de todas estas estas cuestiones también hubo un sesiones de open space que tuvieron muy buena repercusión como ser: el dojo de retrospectivas facilitado por Thomas Wallet, la sesión sobre trabajo remoto facilitada por Mariano Szklanny, la sesión de juegos facilitada por David Canteros, el elefante Agile de los muchachos de Invap, el taller de organizaciones de Martín Salías, la sesión de organizaciones horizontales de los muchachos de Grupo Esfera, el taller de identidad de Pablitux y Rodrigo Monelos y podría seguir un rato más.

Analizando el evento desde una perspectiva comunitaria creo que definitivamente ha marcado un hito:

  • Por un lado (hasta donde tengo registro) fue el primer evento «inmersivo»  y organizado en forma abierta por la comunidad ágil de Argentina . Me refiero al hecho de estar todos juntos, todo el día, por 3 días (en mi caso me levanté siempre alrededor de las 8 y siempre me acosté después de la 1)
  • Por otro lado fue un evento grande (3 días con fuertes implicancias de logística y unos 70 participantes) y fue auto organizado por los propios participantes con el liderazgo de un grupo de entusiastas locales que fueron los que tuvieron la idea del evento.

Mis felicitaciones para el core del grupo de organizadores: 

Les dejo aquí algunas fotos memorables:

aoc_summary_1 aoc_summary_2 aoc_summary_3 aoc_summary_4

La previa del AOC 2015

El evento comienza formalmente hoy pero ya ayer empezó la movida. A partir del mediodía y hasta aproximadamente las 10 de la noche fue llegando gente a la Estancia Del Carmen ubicada en las afueras de Bariloche, donde se desarrolla el evento. En mi caso arribé alrededor de las 15, me establecí, compartí unos mates con el gran JuanAr y tipo 17 nos fuimos hacia el centro de la ciudad. Dimos una vueltas, merendamos y regresamos a la estancia alrededor de las 20. Debo admitir que quedé encantado con las instalaciones de la estancia, una construcción típica de la zona con madera y piedra por doquier y con una vista espectacular. Al regresar nos encontramos con unos 15 agilistas en el hall del hotel jugando a Los Hombres Lobo de Castronegro. Entre charlas, mates y guitarra, llegó la hora de la cena. Y como era de esperar luego de la cena pintó fogón. Si bien técnicamente no era un fogón, sí lo era conceptualmente: gente en sentada en ronda, tocando la guitarra, cantando «las que sabemos todos» y compartiendo una ronda de la bebida nacional nocturna, fernet con coca. Acabo de desayunar, el comedor de la estancia está repleto de gente y en breve comenzará EL evento. aoc_1 aoc_2

Preparando el tutorial de BDD para XP 2015

En los últimos meses publiqué un serie de posts sobre BDD que fuí escribiendo mientras preparaba un curso en formato tutorial para dictar en la conferencia XP 2015 en Helsinki (Finlandia).

Durante semana Santa terminé de armar el curso y este viernes voy a dictarlo por primera vez para obtener feedback y así poder ajustarlo de cara a la conferencia.

Dado que la dinámica es hands-on, decidí armar una máquina virtual para simplificar el setup en las máquina de los asistentes. Esta vez la máquina virtual la preparé tomando como base una imagen de Lubuntu que es básicamente un Ubuntu con un sistema de ventanas muy liviano y con layout muy parecido al de Windows 7.

El tutorial está enfocado en las cuestiones técnicas de BDD: qué herramientas utilizar, como integrarlas en un proceso de integración continua, cómo hacer para para que los usuarios puedan agregar ejemplos y puedan ejecutarlos sin necesidad de instalarse todo el stack de desarrollo, etc, etc.

La semana próxima les cuento que tal anduvo.

Taller de Git online (experimento gratuito)

Desde hace ya un par de años vengo incursionando en la educación online pero siempre en calidad de estudiante. Si bien en las materias que dicto suelo hacer uso de varios recursos online, el dictado formal sigue siendo presencial. La idea de hacer algo online me viene picando desde hace tiempo y esta semana finalmente decidí hacer mi primer experimento.

La temática será Git, una herramienta con la que vengo trabajando desde 2009 y aunque inicialmente no me gustó, desde 2011 la adopté como mi controlador de versiones preferido. Desde ese momento he realizado diversas actividades de difusión: cursos, charlas, artículos, etc. Ahora ha llegado el momento de tomar todos los materiales generados en estos años para darle forma a un curso online.

La idea es generar un conjunto de videos cortos (de entre 5 y 10 minutos) y complementarlos con ejercicios y lecturas además de ofrecer algunas sesiones online para consultas(posiblemente via Hangout o Skype). Mi idea es que el curso pueda completarse en unos 10 días, con una carga de trabajo de 30 minutos diarios.

Mi intención es largar la primera corrida experimental el lunes 20 de Abril. Si estas interesado en participar te pido que completes este formulario para que podamos coordinar el horario de los sesiones de consulta. Este primer experimento será totalmente gratuito.

Agiles 2015: llamado a presentación de sesiones

Hace un par de días abrimos el llamado a presentación de sesiones para Agiles 2015. Me alegra mucho el hecho de que ya hemos recibo 6 propuestas y apenas pasaron 3 dias desde que comenzamos con la difusión.

Tal como había mencionado en algún artículo anterior, este año tenemos algunas novedades respecto del proceso de evaluación/selección de sesiones. En primer lugar estamos pidiendo que cada propuesta venga acompañada de un video de 3 minutos donde el autor de la sesión haga una invitación a participar de la misma. Esto tiene un doble objetivo: por un lado ver como se expresa el autor, escucharlo hablar y por otro lado tener material para difundir el evento una vez la sesión haya sido seleccionada para el evento.

Otro novedad es que hemos incluido explícitamente una instancia de feedback en la cual el grupo de evaluadores de la conferencia se compromete a dar feedback concreto a los autores para que estos puedan mejorar así su propuesta y aumentar las chances de que su sesión sea seleccionada.

En tercer lugar hemos agrupado los temas de interés en 3 grupos (temas técnicos, de gestión y extra-software) asignando a cada uno un coordinador que se encargará de responder consultas de los autores, coordinar el proceso de evaluación de las propuestas de su track y finalmente coordinar el armado de la grilla del track. Al igual que en años anteriores, también es posible que toda persona de la comunidad vea las propuestas y envíe feedback a los autores por medio del sistema

Finalmente, la última novedad tiene que ver con la aplicación que estamos usando para gestionar el envío/revisión/evaluación de sesiones. Estamos estrenando una aplicación creada a medida que comenzamos a codear en Agiles 2014 y que luego @fdibartolo se encargó de completar. Para ser sinceros, Fer la codeó casi de cero pues en Agiles 2014 apenas si llegamos a armar la estructura y definir algunas entidades. ¡Grande Fer!

Bueno gente, esto es todo por ahora, los invito a poner manos a la obra y enviar sus propuestas. Aquí está el detalle del llamado y aquí está el sistema para enviar sus propuestas (y también para ver las propuestas ya subidas).

opencall_home