Me invitaron a dar una charla en el track de Software Crafters de Agiles 2021 y no aún no tengo decidido de qué voy a hablar.
Tengo 2 temas posibles:
No Pull-Request: este es el título «marketinero», pero siendo más sincero el título podría debería ser «Alternativas a los Pull-Requests». La cuestión es más o menos así: el uso de Pull-Request es una práctica muy extendida en la actualidad pero su uso no siempre resulta positivo y al mismo tiempo que algunos equipos padecen de la acumulación de Pull-Request. Por otro lado el uso de Pull-Request y feature branches puede resultar un impedimento para la implementación de la práctica de Integración Continua. En esta sesión veremos técnicas alternativas que pueden darnos los beneficios que los Pull-Requests pero sin algunos de sus inconvenientes.
Diseño de Interfaces fluidas y DSLs: el uso de interfaces fluidas y DSLs ayudan a mejorar la legibilidad del código y en muchos casos también a reducir la cantidad de código repetido. Sin bien varios frameworks y librerías ofrecen DSLs y/o interfaces fluidas, su uso no es tan habitual en el desarrollo de aplicaciones. En esta sesión veremos algunos conceptos y técnicas para su implementación.
Ambas sesiones son de índole técnica pero la segunda incluye código y es justamente eso lo que me hace dudar dado que parte de la audiencia de la conferencia es gente que no necesariamente viene del mundo de la programación.
De todas formas, para tomar la decisión decidí publicar una encuesta en twitter, los invito a votar.
Nota: si bien la conferencia es paga, entiendo que el video de la sesión quedará disponible en YouTube.
Hace un par de semanas se llevó a cabo la conferencia Agiles 2020 y en ese contexto participé de una sesión de «historia» junto a algunos otros colegas del grupo organizador del primer Agiles allá por 2008. Agradezco a MaríaT y LinaP por haber tomado la iniciativa de armar la sesión. Mientras escuchaba hablar a algunos colegas en la sesión me fueron surgiendo algunas reflexiones que quiero compartir aquí.
Creo que nadie de aquel grupo de 2008 imaginaba que la conferencia llegaría hasta aquí: 13 ediciones consecutivas en 8 países de la región, 1 edición 100% online y una edición 14 confirmada para celebrarse en 2021 en Panamá (el noveno país anfitrión).
Una cuestión curiosa de esta continuidad es que se da sin que haya una organización formal ni un steering committee. A diferencia de otras comunidades no hay en Agiles un figura legal detrás de la organización. En el caso de Agiles Argentina está la Sociedad Argentina de Informática, pero no todos los países tienen una figura así. Año a año el grupo de organización es distinto pudiendo incluso ocurrir que de un año para el siguiente se renueve todo el equipo de organización. Esto tiene algunas cuestiones positivas y algunas otras no tanto. Entre las no positivas está el hecho de que potencialmente se pierda «conocimiento», como ha pasado en más de una ocasión (y lo puedo decir con seguridad porque estuve ahí).
Es interesante que en el equipo organizador de este año no participó formalmente ninguno de lo «miembros fundadores» lo cual refuerza esta idea de renovación completa y continuidad. Esto lo digo sin tener una certeza absoluta ya que en la página de la conferencia no encontré ninguna mención al grupo organizador. (si estoy equivocado tal vez algún lector pueda corregirme).
Aquella primera conferencia de 2008, más allá de iniciar la tradición de la conferencia anual, dio origen a una comunidad que inicialmente tomó forma en un lista de correo de Yahoo! y que en algún momento de los últimos años «se mudó» a un grupo de Telegram que hoy en día cuenta con más de 1000 participantes.
A lo largo de todos estos años la conferencia fue variando en distintos aspectos entre los que a mi parecer se destacan dos: formato y temática. En términos de formato tuvimos conferencia tradicional (con convocatoria de sesiones), con keynotes, sin keynotes, con Open Space, sin Open Space, todo Open Space, etc. Realmente se han probado diversos formatos. En cuanto a temática, me animo a decir que igual que el manifiesto ágil, inicialmente hubo un foco en desarrollo de software que en los últimos años fue inclinándose hacía cuestiones más generales de «agilidad». Lo mismo pasó con la comunidad, donde hoy en día participa gente que no tiene relación con el desarrollo de software. Un hecho en relación con este cambio es el cambio de nombre de la conferencia: inicialmente la habíamos bautizado como «Conferencia Latinoamericana de Métodos Ágiles, Agiles XX» y en algún momento de los últimos años (no puedo precisar cuando) pasó a ser «Jornadas Latinoamericanas de Agilidad, Agiles XX».
Personalmente participé de 10 de ediciones y en 3 ocasiones forme parte del grupo organizador. A lo largo de todo este tiempo mi participación y sentido de pertenencia a la comunidad ha ido variando como consecuencia «del match de expectativas». Personalmente mis inquietudes, gustos e intereses pasan por el desarrollo de software y no me despierta mayor interés hablar de «Agilidad» en otros contextos. Es por ello que en el último tiempo me he sentido más afín con otras comunidades, conferencias y espacios de intercambio. Me consta que algunos otros colegas comparten este pensamiento y ello ha planteando cierto debate sobre si Agiles es un espacio de intercambio para gente del desarrollo de software y más particularmente para gente de perfil más técnico. Algunos colegas como AndresJ cree que sí, yo cada vez tengo más dudas. Sin embargo debo admitir que en este último Agiles me encontré con varias sesiones relacionadas al desarrollo de software que me resultaron muy interesantes.
Para cerrar esta reflexión les comparto una foto de la remera que habíamos hecho para el grupo organizador de Agiles 2008 que aún tengo en mi guardarropa.
Para los interesados en repasar la historia y la evolución de AgilesXX pueden encontrar aquí los distintos artículos al respecto que he escrito a lo largo de todos estos años.
En lunes pasado presenté mi sesión sobre Trunk-based Development en Agiles 2020. La presentación fue vía Zoom pero como al finalizar el tiempo estipulado aún quedaban algunas cuestiones por hablar, la continuamos por Jitsi. Participaron unas 50 personas y yo personalmente quedé muy conforme con como salió la sesión.
Hay una cuestión que salió durante la charla y que no deja de llamarme la atención al hablar de modelos de branching. Hay gente que cree que tener un repositorio centralizado y un build server es hacer integración continua. Pues no, no lo es, no es suficiente pues la práctica de integración continua implica que adicionalmente todo el código debe ser integrado al menos una vez al día. Cuando digo integrado me refiero a integrar en un mismo branch todo el trabajo en curso. Esto es algo básico que está explícitamente mencionado en el clásico artículo de Fowler sobre Integración Continua como lo muestra la imagen a continuación:
Hacer Feature branches puede o no ser integración continua dependiendo de la duración de esos branches. Si los branches viven a lo sumo 1 día, está ok. En fin, es un tema que me resulta importante y en breve le dedicaré un artículo en profundidad.
Finalmente quiero agradecer a la organización de Agiles 2020 por haberme invitado a presentar y también a los participantes que se sumaron a la sesión. Les comparto aquí las diapositivas utilizadas en mi sesión.
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)
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 conferenciaEn la apertura del evento hubo un show de tango: músicos en vivo y una pareja de baile
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.
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:
Llevarse no más de un libro por persona
Twittear sobre libro
Anotar en la contratapa del libro el nombre de quien se lo llevó y la fecha
Leerlo y dar feedback al autor
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
Tanto en la conferencia Agile, organizada anualmente por la Agile Alliance, como también en la XP, suele haber un espacio de «librería» donde se venden libros de los oradores de la conferencia y también clásicos de agile.
Me gustaría ver algo así en Agiles2019 pero con una vuelta de rosca.
Dado que en la comunidad Agile de Latam hay varios autores de libros de sobre agile y afines, planificaría una sesión (estableciendo de antemano día, horario y sala) para que cada autor presente su libro en 5 minutos (tipo lightning talk). Luego de la sesión cada autor podría vender o regalar sus libros.
Para que esto ocurra es necesario que la organización haga dos 2 cosas:
Difundir la idea ANTES de la conferencia para que cada autor pueda preparar su lightning talk y también para que pueda organizarse para llevar libros en formato físico o para subirlos a algún medio digital.
Reservar el espacio en cuestión (tanto físico como a nivel agenda)
Me parece que en términos de costo/beneficio esta iniciativa sería muy positiva:
El costo para los organizadores es mínimo (yo mismo me ofrecería a hacerlo si me dieran acceso a la lista de participantes).
Me parece que también es bueno para que los autores puedan difundir su obra
Creo que es un aporte de valor para los asistentes, ya que los libros en castellano sobre agile no tienen gran difusión y escuchar sobre un libro de la voz del propio autor creo que siempre suma.
Finalmente, si esta sesión se hiciera el primer día de la conferencia podría funcionar como disparador de otras sesiones en torno a alguno de los libros presentados.
Como realmente quisiera ver esto materializado, ya le escribí al grupo organizador de Agiles 2019 para ver si puedo conseguir su apoyo para llevar esto adelante.
Estamos a prácticamente 3 meses de la conferencia pero no aún no se sabe mucho aunque, dado que es en formato Open Space, tal vez tampoco haya mucho que decir. Será en el Salón Metropolitano de Rosario del 19 al 21 de Septiembre, se esperan unas 1000 personas, será en formato Open Space y ….. listo. Hay algo más de información en el sitio, pero es más bien metadata. Yo ya compré mi entrada en el primer early bird, la misma incluye una remera pero no el almuerzo.
Personalmente no me terminan de convencer las conferencias en formato 100% Open Space. Y mucho menos en la comunidad Agiles Latam, principalmente porque he visto varias sesiones con un exceso de improvisación y muy bajo nivel/calidad.
A grandes rasgos la propuesta es:
Lanzar la convocatoria de participantes de esta iniciativa (este post)
Hacer una primera sesión online para explicar conocer la iniciativa, confirmar los participantes y definir los sesiones/temas a preparar. A partir de esto empezamos a preparar las sesiones.
Hacer una o dos sesiones online de seguimiento y coordinación para asegurarnos de llegar Agiles con las sesiones pulidas y sincronizadas.
El punto de partida e hilo conductor de las sesiones será el libro Accelerate, o sea: las sesiones tratarán algún tema del libro
Durante la conferencia realizaremos las sesiones planificadas y generaremos el/los entregables.
Han pasado ya algunos días desde el fin de la conferencia y me parece un buen momento para el análisis.
En primer lugar creo que se cumplió la alta expectativa que había en la previa. Es mi sensación personal y también lo que he percibido de mayoría de los asistentes con los que hablé.
Hay algunos puntos que me parece importante destacar en el análisis:
El formato 100% open space caminó bien, hubo una cantidad impresionante de sesiones con una gran variedad de temas. Al mismo tiempo creo que hubo una gran conformidad con este formato, o sea, casi todas las personas con las que hablé estaban conformes con este formato. Esto me hace pensar que en futuras ediciones es posible que se siga con un formato mayoritariamente Open Space.
El nivel de las sesiones (al menos de las que asistí yo) me pareció bien. No vi ninguna sesión que me deslumbrara, pero al mismo tiempo tampoco vi sesión desastrosas. De todas formas creo que es un punto que escapa al equipo de organización. O sea, más que insistir en que la gente prepare las sesiones y ofrecer algunas herramienta online para ir publicando propuestas por adelantado, no imago que se pueda hacer mucho más desde la organización. En línea con esto me pareció una lástima que no se usara el OpenCall, la plataforma que ideamos con Martin Salias y Fer Di Bartolo y que Fer desarrolla activamente.
No hubo sponsors. El tema sponsors es una cuestión que para algunos resulta controversial y por ello le voy a dedicar un artículo aparte.
El cierre de la conferencia fue a plena música y baile. Luego de algunos anuncios de cierre y «calentamiento» para el Agiles 2018 (Mexico), un grupo de percusión animó la retirada de los asistentes.
Hubo un espacio de venta de libros escritos por miembros de la comunidad. Esta iniciativa me pareció excelente para difundir conocimiento generado por la propia comunidad. Los coordinadores de este espacio fueron los organizadores del AOC y lo hicieron con dos objetivos: difusión y recaudación de fondos para el AOC.
Los problemas/inconvenientes que se fueron detectando a lo largo de la conferencia, se fueron arreglando con muy buen timing. Tres casos concretos fueron:
el día 1 se detectó que el marketplace se alargaba mucho, con lo cual al día siguiente se acortó el tiempo de presentación de las sesiones.
el día 1, el almuerzo fue medio caótico debido al gran volumen de gente, por ello al día siguiente se incorporó un food track adicional
el día 2, el sol pegó muy fuerte por la tarde, con lo cual al día siguiente se instalaron unos gazebos para proteger del sol
Un detalle no menor, en este espacio se están subiendo todas las fotos de la conferencia (de ahí saqué la foto que acompaña este post y que fue tomada por Dario Palminio).
Sinceramente creo que esta edición de Agiles ha marcado un hito en nuestra comunidad. Se hicieron varios experimentos en términos de organización, formato, etc y resultaron exitosos. Esto representa un desafió importante para las siguientes ediciones.
Mis felicitaciones infinitas para el equipo organizador de Agiles 2017. Gracias totales.