AgilesLatam: ¿hacia dónde vamos?

Desde aquel Agiles 2008 en Buenos Aires hasta el último Agiles 2019 en Rosario muchas cosas han cambiado.

Pasamos de una convocatoria de no más de 400 personas a una convocatoria de alrededor de 1000 personas. Un cambio razonable considerando el aumento en popularidad de Agile.

Pasamos de un conferencia en formato tradicional con chalas surgidas de una convocatoria y keynotes a un formato 100% Open Space sin Keynotes. La idea de hacer todo Open space me pareció razonable en un momento, pero ya no me convence. Lo de eliminar los Keynotes no me gustó y sigue sin gustarme.

Pasamos de un evento pensado muy internacionalmente (con sitio en castellano, portugués e ingles y traducción en simultáneo para algunas sesiones) a un evento muy enfocado en latam y exclusivamente en castellan. Personalmente me hace ruido que AgilesLatam no haga el esfuerzo de integrar Brasil que es posiblemente el país más importante de la región (aunque según informa la organización hubo unas 3 personas de Brazil participando en la conferencia)..

Pasamos de un evento organizado y enfocado en Desarrollo de Software Agile a un evento de Agilidad. Dicho de otro modo y sin forma de comprobarlo: en las primera ediciones la audiencia era completamente del mundo del software mientras que las ediciones más recientes también participa gente de otras industrias y cada vez hay más sesiones no relacionadas al software.

En 12 ediciones de la conferencia el grupo de organizadores se renovó por completo, lo cual me parece sano.

En fin, más allá de la evolución, el rumbo futuro del ágiles es algo que inquieta a la comunidad y por ello en el contexto del último AgilesLatam hubo una sesión al respecto en la que participaron personas de diversos países de la región.

Durante la sesión se expresaron distintas opiniones y se acordó que es necesario repensar el futuro de la conferencia en diversos aspectos incluyendo propósito, formato y relación con la Agile Alliance entre otros. Finalmente se delegó esa responsabilidad al «consejo de sabios» conformado por una persona miembro del equipo de organización de los últimos 5 AgilesLatam.

Al margen de esto comparto lo que me gustaría a mi en base algunas cosas que vi en otras conferencias Agile, XP y AgileBrazil:

  • Me gustaría que el evento tuviera un formato mixto, parte Open Space y parte conferencia tradicional con sesiones surgidas de una selección y keynotes. Esto es tal como solía ser años atrás pero con un proceso de selección de sesiones más liviano y con un criterio distinto de selección de keynotes
  • Me gustaría que la conferencia tome más relevancia mundial y que integre a Brazil, de forma que resulte más atractiva para gente de otras regiones y podamos tener intercambios más diversos
  • Me gustaría que la conferencia tuviera un espacio importante para cuestiones de desarrollo/ingeniería de software (aunque soy consciente que esto depende en gran parte de los participantes creo que organización y la comunidad debe hacer su parte)
  • Me gustaría que desde la organización se acompañe la conferencia con una oferta de cursos pre/post evento
  • Me gustaría que la conferencia tenga algún tipo de articulación con el mundo académico
Foto del grupo de responsables para trabajar en la definición del futuro del AgilesLatam involucrando a quienes ellos consideren apropiado: Loreto (Chile), Rox (México), Andrés (Argentina) y Martín (uruguay)

Algunos datos de Agiles 2019

La semana pasada estuve participando de la conferencia Latinoamericana de Agilidad, previamente llamada Conferencia Latinoamericana de Métodos Ágiles. Desconozco cuándo ocurrió el rename, pero ocurrió.

En términos generales debo decir que estuvo muy bien. Superó mis expectativas, aunque sinceramente no esperaba demasiado considerando que a mi parecer en los últimos años la conferencia se viene «alejando» de la construcción de software para enfocarse en cuestiones más genéricas de gestión y colaboración.

Algunos puntos que me parece vale la pena destacar:

  • El lugar de la conferencia me pareció muy apropiado: un espacio enorme con más de 20 salas alrededor
  • Había 2 salas especialmente acondicionadas para sesiones de programación / con computadoras
  • Un bar/restaurant dentro del espacio abierto
  • No hubo un momento predefinido para el almuerzo, había sesiones todo el tiempo y cada uno elegía a qué hora parar para comer o incluso se podía seguir de largo. De esta forma se evitó congestión a la hora de almorzar
  • El lugar de la conferencia estaba ubicado entre un parque y un centro comercial. Se podía cruzar fácilmente al patio de comidas del centro comercial del mismo modo que se podía cruzar al parque para disfrutar el aire libre. Incluso me parece que hubo alguna sesión en el parque
  • El marketplace del open space fluyó bastante bien a pesar de la gran cantidad de participantes (~1000)
  • Respecto del contenido creo que hubo para todos los gustos:
    • sesiones técnicas / específicas de software,
    • sesiones más orientadas a la gestión / colaboración (la mayoría me parece que fueron de este tipo)
    • y sesiones diversas que no entran en ninguno de los otros dos grupos que mencioné

Esta es la tercera edición de la conferencia en formato 100% Open Space y sin keynotes, me parece que es un momento interesante para detenernos a pensar cómo queremos que sea el evento en las siguientes ediciones, pero ese es un tema que trataré en otro post.

Un detalle interesante de las credenciales es que tenían semillas incrustadas con la idea de plantar la credencial una vez finalizada la conferencia
En la apertura del evento hubo un show de tango: músicos en vivo y una pareja de baile

Integración Continua 2.0

El sábado pasado en el contexto de Agiles 2019 hice una sesión en formato mini-taller sobre este tema. Era la primera vez que hacía este taller pero más allá de eso creo que salió muy bien.

Integración Continua 2.0 es una idea que viene a reflejar algunos cambios en la forma de implementación de esta práctica que he visto a lo largo de los años. Yo empecé a utilizar esta práctica allá por 2005 / 2006 utilizando la herramienta CruiseControl. Desde aquella época al día de hoy varias cosas hay cambiado:

  • Antiguamente la definición del proceso de integración continua se hacía «dentro del build server», en la actualidad la mayoría de las herramientas permiten (y promueven) la definición del proceso de integración continua dentro del propio repositorio donde se encuentra el código fuente a integrar. Esto es lo que hacen los archivos .travis-ci.yml, Jenkinsfile, etc.
  • Antiguamente los servidores de integración continua corrían típicamente on-premises mientras que en la actualidad es muy común utilizarlos en la nube e incluso en algunos casos en un modelo «as a service»
  • Antiguamente el build se armaba en base a plugins del build server, mientras que en la actualidad hay un clara tendencia a armar todo el proceso de build en scripts que luego son invocados por el build server
  • Antiguamente los servidores de integración continua estaban enfocados en tareas concretas de integración continua, mientras que en la actualidad tienen un foco más amplio apuntando todo el proceso de delivery

Creo que estos puntos quedaron bien claros durante el taller, aún cuando en los ejercicios prácticos no fueron necesariamente en este sentido. De hecho los ejercicios tuvieron más foco en el proceso de delivery.

El taller tuvo una muy buena valoración por los participantes.

Aquí están disponibles los slides que utilicé durante el taller.

Agradezco a todos los participantes y espero que la sesión les haya resultado útil.

Trabajo en grupo durante el taller
Valoración del taller por los participantes en una escala de 1 a 5

Notas de la sesión de libros de autores latinoamericanos en Ágiles 2019

Hoy en Agiles 2019 hicimos una sesión donde se presentaron los siguientes 8 libros:

  • Proyectos Ágiles con Scrum de Martin Salías & Martín Alaimo
  • Construcción de Software, una mirada Ágil, de Nicolás Paez, Diego Fontdevila y otros
  • Poder Creativo de Ingrid Astiz (presentado por María Thompson)
  • Historias de Usuario de Lucho Salazar y Jorge Abad
  • Ingeniería de Software con Scrum, de Dario Palminio
  • La serie del AOC, compilado por Nicolás Paez
  • Agilidad en 4 estaciones, de Melina Jajamovich
  • Desarrollo de Software Ágil en 10 Pines, de Federico Zuppa

Cada autor presentó su libro en 4 minutos y luego tuvimos un espacio para preguntas. En este link están los slides con los datos de contacto de los autores.

Finalmente cerramos las sesión regalando unos 40 ejemplares de los libros presentados. Dejamos los libros sobre una mesa y dejamos que la gente se los reparta con el siguiente compromiso:

  1. Llevarse no más de un libro por persona
  2. Twittear sobre libro
  3. Anotar en la contratapa del libro el nombre de quien se lo llevó y la fecha
  4. Leerlo y dar feedback al autor
  5. Pasarlo a otro persona para que repita el proceso

La idea es que lo libros no queden de adorno en una biblioteca sino que circulen por la comunidad.

Autores latinoamericanos: Diego Fondevila, Nicolas Paez, Dario Palminio, Federico Zuppa, Miaria Thompson, Melina Jajamovich, Jorga Abad, Natalia Baeza, Lucho Salazar, Daniel Celian, Martín Salías y Juanjo Zapico

AgileBrazil 2019, day 3

I attended to 3 session and the rest of the time I was talking with people in the coffee area.

The first session I attended was the one by Hugo Corbucci who talk about the test-pyramid and some variations on it. He shared his experience working on this topic at Digital Ocean where he currently works. Nice session.

Next, I attended a session by Joseph Yoser who talked about Scrum Patterns. It was an interesting session. Joseph talk about the patterns published at http://scrumbook.org/. During the session he just reviewed a couple of patters (the site contains around a hundred patters) and it seems a very interesting resource.

Finally, the closing of the conference was with a keynote session by Dr. Alistair Cockburn who talked about his approach called Heart of Agile. I was already familiar with this approach because my friend SolePinter who is actively working with it. I liked how the session was driven.

AgileBrazil 2019, day 2

The journey started with the keynote session by Paulo Caroli who talked about Lean Inception, nice.

After that I attended to the session “Como acabar con a cultura do héroi” by Ceci Fernandez. The session was very interactive, in fact Ceci acted more as a moderator that a presenter, I liked it.

During the lunch break I left the conference to visit the city. I went to the “Praça da Libertade” neighborhood and visit the Museum of Mines and Metals.

Around 3 pm I went back the conference to listen Luis Parzianello in his session about Business Owners. Really interesting. After the session I had the chance to talk with Luis and his viewpoint on Agility and Transformations really surprised me: “The business needs answers now, it can wait for IT to change, there no more time, if the IT people is not ready to give fast and solid solutions, then they should leave and the organization should get new people ready for the challenge” (these were not his words but my summary of what he told me). I am totally agree with this and it surprised me because most of the “Agile Coaches” I know always try to “change people” without even considering the option of firing people.

The last session of the day was an “out-of-the-box” keynote by Carla Link who talked about several, non-IT, initiatives for a better society. It was a very inspiring session.

Carla on the stage

As usual, the day ended sharing some drinks and talks with all the participantes, this time at Mercado Novo.

AgileBrazil 2019, day 1

This is my first time at AgileBrazil and here is my summary of day 1.

The opening keynote session was in charge of Woody Zuill who talked about Mob Programming. Even when I was already familiar with this technique it was a valuable session. I got some interesting tips and arguments to use when trying to convince people to try mob programming.

After the keynote I spent most of the day in the WBMA session where I presented my paper about Agile in the Undergraduate Curricula. Beyond the presented papers I made some academic contacts. It is amazing for me how difficult is for some researches to present their work in a clear way. Beyond this issue, there were a couple of studies about different agile practices that were really interesting for me.

One session I really liked, beyond those of the WBMA, was the one presented by Vini Andrade who talked about Continuous Delivery at NuBank.

Beyond the sessions I had the opportunity to do some networking and also meet colleagues I already knew like Luis Parzianello, Lula Rodriguez and Maria Augusta.

I don’t speak Portuguese but when Brazilians speak slowly I am able to understand some stuff. But in the main room there is translation service (Portuguse-English) that was a great deal for me.

Woody Zuill on Mob-Programming

Evento: Desarrollo de Software en la era Post-Agile

Desde la Universidad Nacional de Tres de Febrero estamos organizando este evento en la previa de Agiles 2019. El evento lo estamos organizando desde el grupo de investigación en Procesos y Prácticas Agiles de Desarrollo de Software. Más allá del título (que lo pusimos con alguna intención marketinera) la idea es compartir lo que estamos viendo en la industria y en la academia en nuestras investigaciones sobre Desarrollo Ágil. Adicionalmente vamos a compartir lo que estamos haciendo en nuestra carrera de grado en UNTreF y vamos a anunciar nuestro primer seminario de postgrado sobre Software Delivery. A modo de cierre tendremos la presentación de una caso de industria a cargo de Diego Marcet (ContolShift Labs)

El evento se llevará a cabo el martes 17 de Septiembre a las 19.00 hs. (puntual) en la sede Buenos Aires del rectorado de UNTreF (Juncal 1319, Ciudad de Buenos Aires)

El evento es de entrada gratuita pero require registración (aquí).

Este es el texto que estamos usando en los flyers de difusión:

Agile alcanzó el mainstream, se filtró más allá del desarrollo de software y habilitó múltiples oportunidades de negocio. Trajo consigo una nueva mirada del desarrollo de software y el mundo del trabajo. En este proceso de difusión surgieron también distorsiones y oportunistas. Actualmente Agile perdió parte de su significado, muchas personas y organizaciones se consideran Agile sin casi haber recorrido mucho camino ni implementar sus prácticas. Sin embargo Agile marcó un antes y un después en la forma en que desarrollamos software y aportamos valor al negocio. A partir de esta mirada desafiante proponemos este espacio para compartir avances en investigación y experiencias reales de implementación en la industria.

Estudio formal sobre la enseñanza de Agile en Argentina

El año pasado empecé a trabajar en un estudio formal sobre la enseñanza de Agile. Más precisamente sobre la enseñanza de Métodos y Prácticas Ágiles de Desarrollo de Software. Fue así que en el contexto del la conferencia CONAIISI 2018 realicé una encuesta entre los estudiantes allí presentes. A partir de los datos recolectados en esa encuesta escribimos un artículo que enviamos al Workshop Brasilero de Métodos Agiles. Para nuestra alegría el artículo fue aceptado, será publicado en los proceedings de la conferencia y yo lo estaré presentando este miércoles.

Agradezco a todos los que participaron de la encuesta y comparto aquí algunos de los hallazgos más relevantes.

  • Al artículo se llama Initial Assessment of Agile Development in the Undergraduate Curricula
  • Conseguimos 62 datapoints (cantidad de encuestas respondidas) correspondientes a representantes de 14 universidades distintas
  • El 76% de los estudiantes avanzados indicaron haber estudiando Agile
  • Entre las prácticas más estudiadas (por encima de 60%) encontramos: Continuous Integration, Pair-Programming, Test Automation y Desarrollo Iterativo
  • Encontramos dos curiosidades importantes que sugieren que Agile puede estar siendo estudiado de forma muy superficial:
    • El 65 % de quienes respondieron haber estudiado Scrum indicaron que no estudiaron Retrospectivas
    • El 58% de quienes respondieron haber estudiado Extreme Programming indicaron no haber estudiado Test-Driven Development

Estructura de equipo para desarrollo de producto

Desde hace un tiempo estoy trabajando un equipo de producto de más de 20 personas y estamos organizados en una estructura que es nueva para mi pero que al mismo tiempo me parece viene resultando efectiva. La siguiente figura resume esta estructura.

Si bien todo el equipo de producto son más de 20 personas, en el día a día estamos divididos en 4 equipos: 3 feature teams y 1 equipo de toolsmiths (este nombre lo tomé del enfoque FDD, pero no es el nombre real del equipo)

Los 3 feature teams trabajan en funcionalidades del producto y están en el día a día con gente de negocio.

El equipo de toolsmiths es donde yo trabajo. Actuamos como proveedores/facilitadores de los features teams y nos encargamos de mantener/optimizar la infraestructura de desarrollo: repositorios, build server, ambientes, etc. Incluso en ocasiones agregamos código al producto, pero obviamente relacionado a cuestiones de soporte/infra como feature flags, health endpoints, etc. Como parte de nuestro trabajo tenemos que interactuar con otros grupos de soporte organizacional que se encargan de infraestructura de base y regulaciones (seguridad, red, etc). En el equipo somos 3 personas con skills mixtos: podemos codear, agregar tests, configurar servers, scriptear infraestructura pero sobre todo podemos hablar con otros grupos y generar concenso. Alguien podría tentarse de decir que somos DevOps, pero no lo vemos así, porque de entrada no creemos que DevOps sea ni un rol ni un área, sino un mindset con un conjunto de prácticas.

No se si este es el mejor enfoque para la estructura de un equipo de producto, pero consideramos que nos viene resultando bien: el negocio está contento, los distintos equipos están contentos, el producto está estable y tenemos la capacidad de ir a producción bajo demanda y de forma altamente automatizada.