off-topic: Argentina Campeón 2022

Hoy salgo de la temática habitual de este espacio para referirme a un hecho sin precedentes: el mundial de fútbol 2022. Al escribir estas líneas dudo si el hecho es el «mundial de fútbol» o «que Argentina fue campeón». En lo personal creo que es el mundial porque la locura, ilusión, «nivel de manija» que despertó el mundial en el pueblo argentino creo que va más allá de haber ganado la final o no. Obviamente cuando Argentina ganó la final la cuestión explotó, pero incluso antes de eso, lo que se vivió en Argentina no tuvo precedente para mí.

Yo no soy futbolero. Obviamente como todo argentino he practicado fútbol y me he puesto la casaca de algún equipo. Siempre en la posición de arquero, pero ya a los 10 años quedó claro que lo que mio no era el futbol sino el basket. También he ido a la cancha y he vivido un partido en la bombonera, pero siendo sincero casi todas las veces que he estado en un estadio de futbol ha sido para ver una banda de rock y no un partido de futbol. Así y todo, siempre miro los partidos de la selección.

En el 78, cuando Argentina ganó su primer campeonato mundial, yo aún no había nacido. En el 86, cuando Diego levantó la segunda copa para Argentina, yo aún era muy chico. Ya para el 90 tenia suficiente conciencia para sufrir colgado del travesaño en aquel partido de octavos de final contra Brasil. Luego los penales atajados por Goyco, el triunfo contra Italia y el sabor amargo de la primera final perdida contra Alemania.

Después vinieron algunas copas América y la ilusión del 94 con el Diego, el Bati, el Burrito y tantos más. Y otra tristeza infinita cuando «nos cortaron las piernas» y ese dolor de saber que ya no tendríamos al Diego en la selección.

Hubo otras ilusiones de la mano de otros cracks como Aimar, Crespo, Higuaín, Tevez, Riquelme y el propio Messi. Se ganaron campeonatos juveniles e incluso juegos olímpicos. Pero no fue hasta 2014 que la selección mayor pudo llegar a otra final y sin embargo la emoción no fue ni remotamente comparable a este 2022. En aquel 2014 Alemania resultó nuestro verdugo igual que en 90. Luego tuvimos dos finales de copa América (2015 y 2016) que también resultaron derrota.

El punto de inflexión que marcó el inicio del ciclo actual fue la eliminación temprana (digo temprana porque había expectativas de llegar más lejos) en octavos de final de Rusia 2018. Esa eliminación determinó la salida del técnico Sampaoli y la toma de la dirección por Scaloni. Se dice que el nombramiento de Scaloni fue inicialmente provisorio hasta encontrar un técnico definitivo, pero la selección Argentina era una papa caliente que nadie quería agarrar. Fue así que Scaloni, que había jugado en la selección pero que nunca había ejercido como «head coach» quedó confirmado en el cargo. De esta forma surgió «La Scaloneta».

El primer logro fue la Copa América 2021 el cual vino con varios condimentos: fue el primer título de Messi con la selección mayor, fue en Brasil y fue con victoria en la final contra Brasil en el Maracaná.

Luego la Scaloneta ganó «La Finalissima», una copa que enfrentó Argentina como campeón de América con Italia, el campeón de Europa.

Con dos títulos en bolsillo y un invicto de 36 partidos la Scaloneta llegó a Qatar. El torneo comenzó con un tropezón, derrota ante Arabia Saudita pero el tropezón no borró la ilusión (y de hecho yo creo que vino bien). Partido a partido el equipo fue mejorando en su desempeño y la emoción del pueblo fue en aumento. Cada partido implicaba una parálisis del país. Para cuando el equipo llegó a la semifinal la locura era total, el equipo estaba jugando muy bien y muchos ya estaban endeudados: algunos nivel económico para costearse el viaje a Qatar pero muchos más a nivel promesas. La semifinal contra Croacia fue un martes, y para muchos argentinos los días siguientes hasta la final del domingo fueron como vivir en el limbo. No se podía hablar de otra cosa. La selección estaba en todos lados, mirábamos los partidos anteriores una y otra vez. Los supersticiosos buscaban coincidencias por doquier y en los medios y redes sociales todo era Messi, Argentina y la Scaloneta.

Llegó el gran día, con mucha expectativa y mucho nervio. Al final del primer tiempo el equipo estaba ganando muy bien, con 2 goles de ventaja y con un juego muy sólido. El planteo de Argentina había dejado a Francia y sus figuras como una pálida sombra. Es por esto que el empaté de Francia y todo lo que vino después resultó un sufrimiento extremo. Pero finalmente ganamos la tercera, estallaron los festejos y terminó el año. Si, aún faltaban varios días, pero ya todo lo demás había perdido sentido, claro que los problemas del país seguían ahí y cada uno aún tenía obligaciones pero todo pasó a segundo plano. Los festejos el día de la victoria y los días subsiguientes cuando el equipo llegó a Argentina fueron algo nunca visto en el país. Comparto algunas fotos que dan testimonio de ello.

En fin, hora de disfrutar, festejar y cumplir las promesas: ¡somos campeones otra vez!

Exámenes orales y colectivos

Desde que estoy a cargo de MeMo2 en FIUBA e Ingeniería de Software en UNTREF, nunca tomé examen final sino que la aprobación de ambas materias siempre dependió de la calificación de múltiples tareas individuales (cuestionarios, ejercicios de programación, etc) y de trabajos prácticos grupales. Los alumnos en general se han mostrado muy conformes con este mecanismo de evaluación/aprobación.

Sin embargo, a lo largo de los años, he tenido algunas situaciones que me hicieron dudar de la conveniencia de este sistema. Fueron situaciones en las que de una u otra forma quedaba al descubierto el desconocimiento de algún alumno de algún tema importante. Esto se suma al clásico problema de participación/compromiso desparejo de los distintos alumnos en la realización de los trabajos grupales.

Es por esto que este cuatrimestre decidí comenzar a tomar examen final. En FIUBA tomamos final a todo el mundo, incluso a aquellos que completaron la cursada con excelente desempeño. En UNTREF solo tomamos final a aquellos alumnos cuyo rendimiento no fue tan bueno. El examen en UNTREF fue un oral bastante tradicional pues había un solo alumno en la fecha de diciembre. Pero en FIUBA, hubo unos 8 alumnos en cada fecha y la dinámica fue distinta.

En lo personal considero que las instancias de evaluación pueden ser también espacios de aprendizaje si utilizamos una dinámica que así lo permita. A mi parecer resulta difícil hacer que un examen escrito sea una instancia de aprendizaje pues no hay «ida y vuelta» cosa que si ocurre con un examen oral. En el oral típicamente el docente inicia con una pregunta que el alumno intenta contestar y a partir de ahí se puede establecer un diálogo de repregunta, aclaración, etc. Si adicionalmente hacemos que ese oral sea colectivo, la experiencia puede resultar mucho más enriquecedora. En las dos fecha de examen que tomé en diciembre utilicé dinámicas distintas pero siempre en modalidad «oral colectivo».

En ambos casos preparé una lista de preguntas y dividí a los alumnos en grupos de 4 o 6, de forma tal de evaluar un grupo a la vez mientras el resto esperaba fuera del aula. En ambos casos también consultaba a los alumnos si estaban conformes con la nota de cursada y firmarían con esa nota o si tenían intenciones de ir por más nota. Todos los alumnos decidieron «defender» la nota de cursada. Si alguno hubiera elegido ir por más nota, simplemente le hubiera pedido que contestara más preguntas.

En la primera fecha la dinámica fue la siguiente:

  1. Yo leía una pregunta en voz alta
  2. Los alumnos que querían contestar pedían la palabra levantando la mano
  3. Yo le dada la palabra un alumno
  4. El alumno contestaba
  5. Si la respuesta era incorrecta, yo daba la oportunidad de contestar a algún otro alumno
  6. Si la respuesta era correcta, yo permitía que algún otro alumno complementara
  7. De esta forma los alumnos sumaban puntos por cada respuesta/acotación correcta.
  8. Las participación incorrectas restaban puntos
  9. Dos o tres puntos positivos (dependiendo del desempeño del alumno durante la cursada) eran suficientes para la aprobación del exámen

En la segunda fecha la dinámica fue levemente distinta, en vez de leer yo una pregunta en voz alta, cada alumno tomaba un papelito con la pregunta a contestar. O sea, que en este caso no había chances de elegir que contestar.

De esta forma cada alumno, además del diálogo que se originaba a partir de su pregunta, tenía también la oportunidad de escuchar (y participar) de las preguntas/diálogos de sus compañeros.

Personalmente me gustó como salió esta primera tanda de finales con lo cual creo que es un mecanismo que mantendremos.

Cierre de cuatrimestre 2022-2 en MeMo2@fiuba

Bien. Muy bien. Mucho mejor de lo esperado. En la previa teníamos record de inscriptos y el desafió de un cambio importante en el equipo: la salida de EmilioG (que teniendo un cargo de ayudante hacía la veces de JTP) y varios colaboradores. Motivados por estas dos cuestiones y el feedback de los alumnos de cuatrimestres anteriores decidimos realizar algunos cambios en la materia (algo ya había adelanto yo en este otro post)

En resumidas cuentas los cambios más relevantes que implementamos fueron:

  • La primera parte de la materia fue principalmente presencial mientras que la segunda parte fue principalmente virtual. Esto permitió que los alumnos se conozcan cara a cara para formar los equipos de trabajo y luego con los equipos ya armados pasamos a modalidad virtual.
  • Bajamos prioridad a algunos temas para dar más profundidad a otros. En este sentido despriorizamos cuestiones como escalamiento de equipo y principios Lean (cuestiones que verán posiblemente en AdminProd y/o EvaPro) y arquitectura de software (hay una materia entera dedicada a ello). Al mismo tiempo pusimos más foco en el proceso de BDD/TDD/CI/CD y «programación colectiva» (pair-mob programming).
  • También agregamos un ejercicio para trabajar de a pares antes de la conformación de los equipos de proyecto
  • Empezamos a tomar examen final, hasta el momento el mecanismo de evaluación estaba basado exclusivamente en el desempeño de los alumnos en las tareas realizadas durante la cursada (incluyendo tareas individuales y grupales). Pero en los últimos años tuvimos algunos casos en los que en verdad dudamos que algunos alumnos realmente hubieran entendido ciertos conceptos. Para mitigar/minimizar estas situaciones (gente que apruebe la materia sin tener en claro algunos conceptos importantes) es que agregamos el examen final

En lo personal quedé muy conforme con la forma de fluir de la materia. Desde la coordinación de la materia todo resultó muy fluido, no fue necesario «correr» con ningún tema. Preparamos las clases y las consignas con suficiente antelación y no tuvimos la soga al cuello con ninguna corrección. Al mismo tiempo creo que encontramos un mix justo de presencialidad/virtualidad.

El feedback de los alumnos también fue muy positivo, tanto en las retrospectiva como en la encuesta final del curso. No hubo tantos reclamos respecto de la carga de trabajo de la materia, si bien fue un tema mencionado, fue mucho más discreto que en ocasiones previas. Con la encuesta de la materia se dieron algunas situaciones particulares:

  • La encuesta fue contestada por 23 de los 24 alumnos que completaron la materia (record)
  • La evaluación general de la materia (en promedio) dio: 9,1 lo cual iguala el máximo histórico de la materia pero con una particularidad adicional: un desvío mínimo, todas las evaluaciones fueron 8, 9 y 10, o sea que nadie calificó la materia con menos de 8.
  • Las otras dimensiones de evaluación de la materia también resultaron muy positivas (algunas incluso con valores record): claridad de los docentes: 4,7/5; Conocimientos de los docentes: 4,9 /5; Dinámica de las clase: 4,7/5; Materiales de estudio: 4,4/5.
  • El NPS, que anteriormente nos había dado 38, ahora nos dio 61 (esta es una métrica que puede tomar valores en el rango -100 +100, con lo cual un 60 es muy bueno)

De la restrospectiva final identifiqué las siguientes acciones concretas para trabajar:

  • Revisar/editar los videos sobre infraestructura pues tienen contenidos que se sueperponen
  • Crear una base de conocimiento con los problemas recurrentes que se encuentran los alumnos al programar con Ruby/Padrino
  • Revisar el timelime de ejercicios/correcciones
  • Hacer una explicación más detallada de la configuración & funcionamiento del pipeline y la infra de los trabajos finales

Algunos otros números:

  • De los más de 30 inscriptos iniciales, solo 24 completaron la cursada
  • La nota promedio de aprobación de cursada fue 7,9
  • Tuvimos 38 tareas individuales, 1 tarea en parejas y 2 trabajos prácticos
  • En términos de dedicación extra clase, en promedio por alumno, fue de un total de 112 horas (53 de tareas individuales/en pareja, 12 horas de tp1 y 47 horas de tp2) repartidas en 15 semanas (que fue la duración de este cuatrimestre para nosotros). Esto nos da unas 7 horas de dedicación semanal extra clase por alumno a lo largo de todo el cuatrimestre.
  • Hasta el momento tuvimos 2 fechas de examen final en las cuales se presentaron 17 estudiantes de los cuales 15 fueron aprobados.

Sobre el curso de Práctica Técnicas para Scrum Masters

La semana pasada completé la primera edición de este curso que pensamos junto @martinalaimo. Estoy muy contento con cómo salió considerando que fue la primera edición.

Fueron 4 encuentros online y sincrónicos a todo ritmo con un grupo de 20 participantes muy motivados. Si bien los encuentros tuvieron bastante interacción, me quedó gusto a poco con las interacción offline, me hubiera gustado ver más participación en los foros :-(.

Hablamos de facilitación de estimaciones, modelos de branching, integración continua, test automation y devops.

El feedback de los participantes fue muy positivo y todos coincidieron en que el curso debería haber tenido más encuentros para poder profundizar mas en algunas cuestiones, cosa con la que estoy completamente de acuerdo. Agradezco a todos los participantes por haberse sumado al curso y haber sido en cierto modo «conejillos de india» de este nuevo curso.

Ya tengo en mente varias mejoras para la siguiente edición incluyendo el hecho de extender la duración (posiblemente sean 5 o 6 encuentros) y agregar algunas demostraciones «ejecutables» de pipelines y pruebas automatizadas. Aún no hemos puesto fecha para la siguiente edición pero seguramente tengamos una fecha para el primer trimestre de 2023.

Finalmente quiero agradecer a Martin Alaimo por haberme alentado en esta iniciativa y al equipo de AlaimoLabs por el soporte y la logística del curso.

Sobre el WORP & QSconf

Empiezo por el final.

El viernes estuve participando de la Quality Sense Conference. Resulta que Federico Toledo (socio fundador de Abstracta) tiene una podcast llamado Quality Sense. Dado que a raíz del WORP habría en Montevideo varios referentes de temas de calidad, aprovechó para hacer esta conferencia y de esa forma ofrecer de forma abierta y gratuita una oportunidad de aprendizaje y networking para la comunidad.

Por restricciones personales de agenda no pude participar de toda la conferencia pero pude escuchar algunas charlas e incluso dar una charla yo mismo. En el canal de YouTube de Abstracta está disponible todo el stream de las charlas en castellano y en inglés.

Pero antes de la Quality Sense conf estuve participando del WOPR: Workshop On Performance and Reliability. Este workshop tiene un formato reducido y cerrado, o sea: el número de participantes puede variar levemente pero suele rondar las 25 personas y la participación es por postulación e invitación (ya escribí sobre esto en un post anterior). ¡Brutal! (dirían mis colegas Venezolanos). Fui en un modo muy «exploratorio» y completamente entregado a experimentar con un formato nuevo para mi. Y sinceramente todo estuvo muy por encima de mis expectativas, tanto formato como contenido.

A nivel de contenido me traje un montón de cuestiones para investigar y probar. Hay que destacar aquí que todo el contenido en el WORP (salvo algunas excepciones) es presentado en formato de experiencia, o sea: la gente no va contar una idea, ni a explicar conceptos, sino que los participantes van a contar una experiencia. Entonces todas las interacciones y el contenido compartido se desprenden de las experiencias compartidas por los participantes.

En cuanto al formato hay varias cuestiones interesantes:

  • En primer lugar el formato reducido habilita a explorar los temas con bastante profundidad al mismo tiempo que simplifica la logística de organización.
  • El hecho de que sea cerrado les da a los organizadores la oportunidad de seleccionar a los participantes y a partir de ello tener cierto control sobre el contenido pudiendo así asegurar diversidad y alineamiento en los temas.
  • La dinámica de interacción en el evento es en parte posible también por la cantidad reducida de participantes (aunque el facilitador comentó que utilizó la misma dinámica en reuniones con cientos de personas). La dinámica me gustó tanto que estoy considerando armar otro workshop con esta misma dinámica (en breve más novedades al respecto).

Luego de pasar mis notas sobre las experiencias presentadas escribiré otros post al respecto.

Continuará…

Pair Programming: prejuicios y beneficios

Sensación: pair-programming es un práctica muy popular en el sentido de que mucha gente (cree que) la conoce

Sensación: gran parte de los que dicen conocer la práctica, no la han puesto en práctica, o no la han practicado correctamente y hablan desde el desconocimiento y el prejuicio.

Dato: es una práctica muy poco usada (hay varios estudios que lo así lo indican, uno de ellos el trabajo sobre prácticas ágiles que hicimos en untref)

Lo curioso es que es una práctica que ha sido ampliamente estudiada hace ya bastante tiempo. Los estudios han dejando en claro los beneficios de esta técnica pero parece que las evidencias no han resultado suficientes para que la industria deje de lado sus prejuicios de «pérdida de productividad». Pero creo que también hay otro componente: a algunos programadores (no pocos) no les gusta hacer pair-programming pues prefieren hacer «solo-programming».

En fin, comparto algunos artículos sobre pair-programming que han resultado muy interesantes:

Si aún dudan sobre la efectividad y beneficios de Pair-Programming no duden en leer estos artículos.