Mis sesiones en Agile 2017

En agosto estaré participando por primera vez en la conferencia Agile donde estaré presentando dos sesiones:

Ambas sesiones están inspiradas en las experiencias y lecciones aprendidas que he recolectado en los últimos años. Ambas sesiones son en formato presentación con una duración de 75 minutos (con espacio de preguntas incluido).

A modo de ensayo, estaré dando la segunda de estas sesiones el próximo Jueves 20 de Julio en el contexto del Meetup de Ágiles Argentina. La cita es en la Facultad de Ingeniería de la UBA a las 19 horas (aula a confirmar).

A producción con Docker

Hace un par de semanas comencé a trabajar en un nuevo proyecto para dar una mano con cuestiones de infraestructura. Un punto interesante que me llevó a involucrarme en el proyecto es que se planea utilizar docker en el ambiente productivo. El equipo ya se encuentra utilizando docker + compose sobre sus servidores virtuales, pero la idea es utilizar el servicio de contenedores de Amazon.

Dicho servicio de contenedores no es completamente compatible con Docker-Compose. En primera instancia el servicio de Amazon provee un conjunto mucho más amplio de funcionalidades pero al mismo tiempo algunas funcionalidades soportadas por Compose están diseñadas de forma distinta en Amazon. Es interesante que Amazon provee entre sus herramientas una que convierte los Docker-Compose al formato de Task Definition que utiliza Amazon.

Continuará…

Estabilizando la velocidad

Durante las dos primeras iteraciones decidimos no puntuar las stories con un valor explícito de estimación. Simplemente a la hora de determinar el compromiso de la iteración utilizamos la tantas veces usada técnica de “estimación a ojo de buen cubero”. Pero ya en la tercera iteración el cliente nos pidió que puntuáramos las todas las stories del backlog para poder hacer una proyección. Así que eso hicimos, repasamos todo el backlog haciendo una estimación de mano (una variante del famoso planning pocker).

Adicionalmente al comienzo de cada iteración, repasamos los valores asignados a cada story  y de considerarlo necesario los volvimos a estimar.

La semana pasada completamos la sexta iteración y por primera vez entregamos exactamente lo que habíamos comprometido. Hasta entonces siempre habíamos tenido un pequeño delta positivo o negativo.

Comprometido vs. Entregado

Como se puede apreciar en el gráfico precedente la cantidad de puntos entregados por el equipo ha ido en aumento desde la iteración 4. Parte de ese incremento se debe a que las iteraciones 4 y 5 tuvieron días feriados en los que no trabajamos y que hicieron que dichas iteraciones fueran más cortas en términos de días trabajados.

En este momento estamos trabajando en la iteración 7 y el tamaño del compromiso tomado es bastante mayor a las iteraciones anteriores (75 puntos). Esto se debe a que se sumo una nueva persona al equipo.

Al finalizar la iteración 8 saldremos a producción. Yo hubiera preferido salir antes, pero resulta que estamos reemplazando un producto existente y ha sido muy difícil hacer un recorte de funcionalidad que nos permita salir antes sin impactar negativamente en el negocio.

Continuará…

SECM Workshop @ ICSE 2017

Art by Nayla Portas

I recently participated in this workshop. It started with a talk by my colleague and friend Diego Fontdevila: Tales from an Agile Journey: Designing Curricula from Millennials in Industry and Academia. While Diego was talking,  Nayla Portas took care of graphics facilitation, great work!

The rest of the morning was dedicated to present all the submitted papers and the afternoon was for debating following a fishbowl-like dynamic.

During the afternoon some students join the session to participate in the debate. I am not sure about the exact number of participants but I think we were around 15, including people from Argentina, Brazil, USA, Sweden, Uruguay, Chile, Rusia, Spain, Italy and China.

After the workshop some of the participants went to a near restaurant to share the dinner. It was the earliest dinner I had in my whole life,  I was eating meat at the 7 pm!

I want to thank Hakan and Cécile for organising this workshop. It was a really valuable activity, it was great to see people from so different contexts sharing their experiences.

There are some more pictures of workshop in its website.

ICSE 2017, my notes from Technical Briefings

ICSE 2017, my notes from Technical Briefings

I recently had the chance to attend to this conference. It was organised in 3 parallel tracks with session of 90 minutes length. I started my journey in the session by Barry Boehm, yes that guy, the one that created COCOMO and wrote those classical books about software cost estimation. The title of the session was: Software cost estimation meets software diversity. The session was fine, the content was not innovative in my opinion but beyond that, it was incredible to see Barry, who is 82 years old, presenting it.

Next, I went to the session by Damian Tamburri that was called DevOps: Introducing Infrastructure as Code. The session started with a brief introduction to DevOps foundations and then it focused on the Infrastructure as Code practice by presenting an standard specification for defining infrastructure as code. I didn’t know about this spec, it is called Tosca and seems very promising. In a certain way this specification standardises some of the feature currently supported by Terraform.

In the afternoon I went to the session Analyzing Software Engineering Experiments: Everything You Always Wanted to Know but Were Afraid to Ask by Sira Vegas. I expected this session to be interactive, but it wasn’t, it was a lecture, where Sira shared several common mistakes in Software Engineering Experiments and also how to prevent/avoid them.

To close the journey I attended to the session Detecting and Quantifying Architectural Debt: Theory and Practice by Yuanfang Cai and Rick Kazman. It was really interesting, it was focused on how to measure the debt in terms of money because that is a simply way for business people to understand its relevance. After this motivation the authors presented an initiative they are involved. The slides of the session are available here.

All the sessions I attended had between 10 and 30 participants, which in my opinion was too few given the relevance of the speakers.

One thing I would change is the length of the session, 90 minutes for “lecture-like” session is too much in my opinion. So I would propose to do shorter sessions or make them more interactive. Beyond these details, it was a really valuable journey for me.

Sobre la Reunión de Revisión (Iteration Review)

Sobre la Reunión de Revisión (Iteration Review)

Allá por 2015 escribí una serie de artículos sobre esta reunión y este artículo me quedó a medio escribir en la carpeta de borradores. Ayer por la tarde una consulta de una colega me motivó a completar el borrador y publicarlo. Espero resulte útil.

Las reviews de mis proyectos suelen tener 2 partes a las que suelo denominar PPT y Demo.

La parte de Demo es donde se muestra el resultado del trabajo realizado. En términos de Scrum es el incremento de producto, en términos de desarrollo más genérico es el working software. Algunos puntos importantes: esta demostración del software se hace en un ambiente de Test/QA (o como gusten llamarle) es una ambiente con bastante estabilidad y definitivamente no es la máquina de un developer. Incluso en algún caso muy particular he hecho la demo directamente en el ambiente productivo.  Como mencioné en un artículo anterior, la Demo no puedo fallar pues no hay razón para que fallé: la estamos corriendo en un ambiente controlado, tenemos tiempo para prepararla y definir exactamente el flujo de acciones. Es cierto, puede haber algún imprevisto como que se caiga la red y por eso es que debemos tener un plan B. Dicho plan B puede ser correr la demo en otro ambiente o bien tener la demo grabada en video. Lo que el equipo considere necesario para asegurar poder mostrar el producto funcionando.

Por otro lado está la parte que suelo denominar PPT en referencia a las diapositivas que se suelen utilizar para guiar esta parte de la reunión. En esta parte de la review repasamos el compromiso, comentamos los eventos relevantes ocurridos durante la iteración y vemos algunas métricas. Finalmente cerramos con una sugerencia sobre los siguientes pasos. En algunos casos, dependiendo de la dinámica del proyecto, puede que también repasemos el estado de los riesgos del proyecto. Todas estas cuestiones se traducen en los siguientes slides:

  1. Portada: nombre del proyecto, número de iteración, fecha
  2. Slide 1: bullets con los hitos relevantes de la iteración y su estado (completo / incompleto)
  3. Slide 2: Burdown chart
  4. Slide 3: Detalle del backlog
  5. Slide 4: Sugerencia de siguientes pasos

Si la iteración incluyó algún entregable que no fuera código (como por ejemplo un spike o algún documento técnico) entonces hay un slide dedicado a esto.

Básicamente considero 3 alternativas para articular estas dos partes:

  1. Primero PPT y luego Demo
  2. Primero Demo y luego PPT
  3. PPT – Demo – PPT

Generalmente utilizo la variante 3.

Dependiendo de la dinámica del proyecto, puede que la demo la ejecute algún developer o directamente el producto owner.

AOC más allá del AOC

El AOC ya término pero sin embargo sus ecos siguen resonando. Sin ir más lejos yo estoy escribiendo estas líneas y usted lector, las está leyendo. Pero más allá de esta trivialidad hay algunas otras cuestiones que vale la pena mencionar.

En primer lugar hay un grupo de Telegram de los participantes del AOC que tiene una actividad bastante importante.

Por otro lado hay en marcha una serie de iniciativas que tienen que ver con contenido:

  • Durante el AOC yo estuve “persiguiendo” participantes para que completaran una encuesta de mi trabajo de investigación y por estos días estoy trabajando en el procesamiento de las respuestas obtenidas. Con estas respuestas intentaré generar un publicación formal de aquí a un par de meses.
  • Como comenté hace un par de días, ya está disponible para descarga digital el tercer libro del AOC y también está en proceso la versión impresa.
  • Finalmente, @rob_mejias está publicando una serie de videos que él mismo grabó durante el AOC de Chile. Estos videos duran un par de minutos y son básicamente mini-entrevistas a miembros de la comunidad sobre temas específicos. Les comparto el video de la mini-entrevista que me hizo Rob sobre DevOps.