Investigación formal sobre TDD ¿queréis participar?

Hace unos dos meses comenzamos, con el grupo de Prácticas y Procesos de UNTreF, a trabajar en un estudio sobre Test-Driven Development (TDD).

TDD es un de las prácticas ágiles más populares pero comparativamente con otras prácticas ágiles es muy poco utilizada. Cuando digo que es popular me refiero a que es muy conocida (se sabe de que se trata) pero curiosamente hay varios estudios que muestran que su uso es mucho menor al de otras prácticas ágiles como las Restrospectivas e Integración continua. Dos fuentes que confirman esto son el reporte anual de VersionOne y nuestro propio estudio sobre Prácticas Agiles en Latam.

Con mi colega @dfontde tenemos la sospecha de que esta baja adopción de TDD puede deberse a issues de usabilidad de la práctica. Esto es precisamente lo que vamos a intentar probar (o descartar) en este estudio. Para ello utilizaremos el Modelo de Usabilidad de Práctica y Procesos que @dfontde está desarrollando como parte de su doctorado.

Para realizar esta investigación vamos a necesitar la colaboración de practicantes con al menos 5 años de experiencia en el uso de TDD. Los interesados pueden contactarme dejando un mensaje aquí.

DevOps Tutorial at Profes 2019

Next week I will deliver my DevOps Tutorial at the International Conference on Product-Focused Software Process Improvement, Profes 2019. This will be my second time delivering this tutorial in Europe, but this time I have updated the tutorial to include Kubernetes-related content and of course I had to remove some other content that was not so relevant.

The conference will be held in the North Campus of the Technical University of Barcelona. The tutorial is scheduled for November 27 morning.

For those that plan to participate ensure to install the following software on your notebooks: an Ssh client, Git and Docker Desktop (or docker-engine for those running on Linux).

Reuniones Open Space: ¿y si le damos una vuelta de rosca?

Desde 2009, cuando descubrí el formato Open Space, hasta hoy creo que este formato ha tenido muchísimo uso y difusión. Pero lamentablemente mis experiencias en Open Spaces en los últimos años no han sido muy positivas y finalmente me cansé. Me cansé de asistir a eventos/encuentros sin saber a ciencia cierta qué temas concretos se tratarán, me casé de ver sesiones extremadamente improvisadas que no salen bien, me cansé de ver siempre a los mismo oradores exponiendo.

El martes pasado estuve participando de un Meetup en formato Open Space y una vez más experimente la misma historia: fui sin saber qué temas concretos se tratarían, me encontré con los mismo oradores y con sesiones improvisadas.

Insisto, es una cuestión de gustos. A mi personalmente me gusta más tener una agenda predefinida.

Creo que un punto intermedio podría ser tener una agenda mixta, algunas sesiones previamente definidas y luego un espacio para sesiones espontáneas que surjan durante el encuentro.

Agile a izquierda y derecha

Continuando con la inquietud que traje hace un par de días comparto algunas ideas más surgidas de mi intercambio con mi querido colega @Pablitux.

Dada la relevancia del factor humano, la consciencia del otro, el espíritu de co-creación y colaboración, uno podría pensar que Agile tiene cierto aire de “izquierda”.

Del mismo modo si pensamos en el foco en la entrega de valor, la eliminación de desperdicios y la optimización del flujo, uno podría pensar que es un enfoque resultadista, algo que suena más de “derecha”.

Más allá de esto pensamientos algunos hechos que podrían aportar a esta reflexión.

  • Toda la movida de Scrum at Scale tiene una onda muy corporativa
  • El libro de Tobias Mayer & Alan sobre Scrum se llama Por un Scrum Popular
  • En Ágiles 2017 no hubo sponsors, lo que podría interpretarse como una postura “anti mercado”
  • El Ágiles 2014 se hizo en un hotel de categoría, la organización estuvo a cargo de una empresa de eventos, el precio de la entrada fue record y los sponsors estuvieron muy presentes en el evento

Estudio sobre enseñanza de métodos ágiles (pedido de ayuda)

El principal foco de mi trabajo de investigación este año es la enseñanza de métodos ágiles en carreras universitarias de grado en Argentina. En ese sentido llevo publicados dos trabajos:

  • Introducing Agile Methods in Undergraduate Curricula, a Systematic Mapping Study, publicado en CACIC 2019
  • Initial Assessment of Agile Development in the Undergraduate Curricula, publicado en WBMA@AgileBrazil 2019

El primero es una revisión de sistemática de publicaciones. El segundo es un trabajo basado en una encuesta realizada a estudiantes de carreras de informática. El tercer paso de este trabajo de investigación es estudiar el tema desde las perspectiva docente y en ese sentido estoy contactando docentes de ingeniería de software y afines para revelar qué enseñan y cómo lo enseñan.

Hasta el momento he logrado contactar docentes de 22 universidades, no pretendo contactar docentes de todas las universidades de país, pero hay algunas que particularmente me gustaría poder contactar:

  • Universidad de Mendoza
  • Universidad Nacional de Córdoba
  • Universidad Nacional de Rosario
  • Universidad Nacional de Entre Ríos
  • Universidad Nacional de Formosa
  • Universidad Nacional de La Pampa
  • Universidad Nacional de Río Cuarto
  • Universidad Nacional de Santiago del Estero

Si algún lector puede darme una mano para contactar docentes de ingeniería de software de estas instituciones le estaré muy agradecido.

Nuevos talleres para fin de año

De aquí a fin de año tengo agendados dos talleres y en paralelo estoy empezando a diseñar algunos nuevos para el año próximo.

El próximo lunes 11 de Noviembre voy a estar dictando una nueva edición actualizada mi taller de DevOps (más info aquí)

Durante diciembre estaré haciendo una nueva edición de mi taller online de Introducción a Docker & Kubernetes (detalles del temario aquí)

Por otro lado, a partir de algunas charlas y consultas que escuché en conferencias y meetups en los últimos meses, se me ocurrió armar algunos nuevos talleres.

Los nombres al igual que la estrategia de delivery aún la tengo que pulir, pero las ideas las tengo bastante claras:

  • Dev para Ops: unas de las cosas que viene de la mano de las iniciativas de DevOps es el manejo de Infraestructura como Código y junto con ello viene todo un conjunto de prácticas del mundo de desarrollo y de ingeniería de software que muchas veces son desconocidas para la gente que trabaja en cuestiones de Operaciones / Infraestructura / IT. Cuestiones como programación, modularización, abstracción, planificación, versionado, documentación, testing, etc. La idea de esta taller es cubrir estos temas desde una enfoque hands-on teniendo como audiencia a gente de Operaciones / Infraestructura / IT.
  • Git Internals: hoy en día el uso de Git es moneda corriente, pero me parece que la mayoría de los usuarios no sabe cómo funciona Git en detalle, ya sea porque utilizan Git desde algún IDE que oculta los detalles o porque solo utiliza las operaciones básicas. Este taller sería como una continuación de mi Taller de Git que armé hace unos 7 años.
  • Integración y Entrega continua 2.0: estas son dos prácticas de las más populares en la actualidad pero no son prácticas nuevas. Asimismo en los últimos años ha habido una explosión de herramientas de soporte a estas prácticas que se suman al clásico Jenkins. En este taller vamos a explorar los fundamentos conceptuales de estas prácticas junto con diversos criterios para elegir una herramienta y los patrones de implementación más populares.
  • Patrones de desarrollo de microservicios: microservicios es un tema picante y popular y como suele ocurrir con estos temas siempre gente intrigada y confundida. A esto se suma el hecho que un par de clientes me han consultado por capacitaciones en esta temática

Interesados en participar o conocer más de estos talleres me puede escribir por este medio.

Agile, Economía, Tradicionalistas e Innovadores

El clima político que se ha vivido en Argentina desde el comienzo de las campañas electorales me llevo reflexionar sobre las posibles relaciones entre Agilismo y los tan mencionados modelos económicos que tanto han sido nombrados en estos últimos tiempos. Antes de adentrarme más en el tema quiero aclarar que no soy experto en estos temas, sino un simple ciudadano de a pie, cuyas ideas pueden implicar razonamientos erróneos. Hecha la advertencia, avanzo.

Dentro de lo que ha dado en llamarse “Agile” o “Agilismo” hay a mi entender dos corrientes que yo personalmente denomino “los tradicionalistas” y “los innovadores”.
Los tradicionalistas son lo que ven los métodos ágiles como literalmente los describe el manifiesto: “…formas mejores de desarrollar software…” y por consiguiente lo aplica puntual y concretamente al desarrollo de software.
Los innovadores son los que tienen una conexión más profunda con el Agilismo y lo aplican en diversos contextos de su vida, excediendo por mucho el desarrollo de software e incluso el ámbito laboral. Yo personalmente me considero tradicionalista pero tengo varios amigos y colegas que sin duda se ubicarían en el grupo de los innovadores.

Para los tradicionalista me parece que no hay conexión entre agile y los modelos económicos.

Pero en el caso de los innovadores sospecho que puede llegar a haber cierta conexión. Los innovadores “van con agile a todos lados” y eso hace que agile se filtre indefectiblemente en la discusión de modelos económicos. Y cuando hablo de modelos económicos no me refiero necesariamente a cuestiones de macroeconomía sino también a cuestiones más del día a día como la forma en que nos organizamos dentro de una organización. Un dato en este sentido: en el meetup de Agiles Argentina suele hablarse con bastante frecuencia de organizaciones horizontales. En contraposición a eso, mientras escribo estas líneas me viene a la memoria una conversación con un colega que me cuenta que está trabajando en un corporación internacional y que están implementado SAFe lo cual me hace pensar que estoy escribiendo boludeces (perdón el término, puede que no suene elegante pero es muy gráfico).

En fin, me cuesta articular argumentos, tal vez porque soy un tradicionalista. Voy a cortar aquí y voy a intentar validar algunas ideas con colegas innovadores a ver opinan.

Continuará….