Entrevista sobre Ingeniería de Software en Estación UNTreF

Hace un par de días me entrevistaron en el programa Somos de Acá, que se emite diariamente por Estación UNTreF, la radio online de la Universidad Nacional de Tres Febrero.

En la entrevista hablé sobre ingeniería de software y también sobre mi libro Construcción de Software: una mirada ágil.

El audio de la entrevista está disponible aquí.

Anuncios

Build de 10 minutos y categorización de tests

Cuando el equipo actual tomó a su cargo el sistema este tenía una alto grado de inestabilidad y prácticamente no tenía tests automatizados. Gradualmente se fueron agregando tests que ayudaron a mejorar a la estabilidad del sistema. En un punto se llegó a tener unos ~2600 tests de componentes/unitarios cuya ejecución excedía los 30 minutos. Todos estos tests eran ejecutados como parte del build de integración continua. A esto se sumaba el hecho de que equipo hacía feature-branches, los cuales también eran buildeados automáticamete, aumentando la carga del build server. Llegado un punto, cada vez que un developer hacía un commit (+push) tenía que esperar, en el mejor de los casos, unos 40 minutos para obtener feedback. Podía llevar a pasar que el build server estuviera ocupado y entonces el build quedaba encolado estirando aún más el tiempo de espera.

Ante esta situación hicimos dos cosas. En primer lugar instalamos un segundo agente del Build Server, para bajar el tiempo tiempo de espera en cola. En segundo lugar categorizamos los tests y ajustamos la configuración del build server. En este segundo punto quiero profundizar.

Es un práctica muy difundida y aceptaba, el tener un build de integración/feedback continua que no exceda los 10 minutos (algunas referencias para profundizar aquí y aquí). En línea con esto decidimos categorizar los ~2600+ tests, identificando aquellos que cubrían las partes críticas de la iteración. Identificamos unos ~600 tests fundamentales cuyo tiempo de ejecución resultó en unos 7 minutos. Categorizamos esos tests como “core”. Al mismo tiempo ajustamos el build server para que se ejecuten en forma continua (ante cada commit+push) los tests “core” y de los “current” (pertenecientes a la iteración actual), de manera de poder tener un feedback “rápido”. Por otro lado, creamos otra tarea que se ejecuta al fin del día para correr el set completo de tests.

 

Mis notas del CONAIISI 2017

Jueves y Viernes pasado estuve participando por segunda vez del CONAIISI. En ese contexto estuvimos con Fernando Gainey y Diego Fontdevila presentando nuestro trabajo An empirical study on the usage of technical and organizational practices in the Agile Community. Personalmente me gustó como salió nuestra presentación. Las diapositivas utilizadas están disponibles aquí.

Más allá de nuestra presentación, tuve la oportunidad de escuchar la exposición de algunos otros trabajos de investigación que me resultaron interesantes.

Entre los trabajos de estudiantes hubo un par que me parecieron muy buenos. En este contexto quiero destacar el trabajo final de carrera Ema Suriano y sus colegas de la UNLAM quienes desarrollaron un artefacto para habilitar el aprendizaje/asistencia de escritura/lectura braile. Más información sobre este desarrollo está disponible en https://blindle.github.io/.

Por otro lado, me llamo mucho la atención que ciertos trabajos no fueron presentados a pesar de que algunos de los autores estaban presentes en la conferencia.

Más allá de la cuestión académica, el jueves por la noche fue evento social de la conferencia en el patio cervecero de la cervecería Santa Fe. Lugar 100% recomendable.

Finalmente en el cierre de la conferencia, se anunció que el CONAIISI 2018 será en Mar del Plata.

Con Fer y Diego en el camino de vuelta casa.
Cena social en el patio cervecero.
Exposición de pósters de trabajos estudiantiles.

Conferencias de cierre de Año

Hoy y mañana estoy participando del Congreso Nacional de Ingeniería Informática y Sistemas de Información (CONAIISI) que se está desarrollando en la Facultad Regional Santa Fe de la Universidad Tecnológica Nacional. En este contexto voy a estar presentando el trabajo An empirical study on the usage of technical and organizational practices in the Agile Community.

La semana próxima, estaré participando de la Smalltalks. La misma se desarrollará del 8 al 10 de noviembre, en la Universidad Nacional de La Plata.

Experimento Podcast

Después de varios años de escritura, he decidido experimentar con otro formato para difundir ideas/conocimiento/opiniones. El formato en cuestión es podcast. Para grabarlo utilicé Garage Band y luego lo subí en SoundCloud. Respecto de la temática de este primer experimento, decidí tratar una cuestión que escribí en el libro de ensayos del AOC: La popularidad de agile.

Banca DevOps, nuevo proyecto

Desde hace un tiempo hay en Argentina un auge de transformación digital en el sector bancario, el cual suele incluir iniciativas Agile + DevOps. En ese contexto, fui contactado hace un par de semanas por un banco para colaborar en la optimización de su flujo de valor (en realidad el pedido vino por otro lado y después de un par de charlas derivó en esto).

Luego de un par de conversaciones con las personas que me convocaron, nos pusimos de acuerdo y accionamos. La idea es comenzar trabajando sobre un equipo en concreto, y luego incorporar gradualmente otros equipos. La intención es poder ir resolviendo problemas reales de los equipos y definir reglas/patrones a partir de generalizaciones de lo realizado en cada equipo.

Una de mis premisas de trabajo cuando participo de este tipo de iniciativas es definir criterios claros y objetivos de éxito. Muchas veces he visto iniciativas fundamentando su éxito en frases tales como “La gente se siente más contenta”, lo cual puede estar bien para “la gente”, pero muchas veces resulta insuficiente para quien paga. Tal vez sea una limitación mía, pero no he tenido éxito convenciendo gerentes con “sensaciones”. Tal vez sea por mi perfil ingenieril: las sensaciones me parecen importantes, pero a la hora de tomar desiciones quiero números concretos. En este sentido, en el contexto de esta nueva iniciativa, hemos definido dos métricas iniciales como referencia: lead time y risk exposure.

Continuará…

Agiles 2017, mis notas finales

Agiles 2017, mis notas finales

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.