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í.

Taller de TDD en UDAV

Ayer estuve haciendo mi Taller de Test-Driven Development en la Universidad Nacional de Avellaneda. Del taller participaron unos 15 alumnos de la carrera de Ingeniería Informática. Personalmente me gustó como salió y me sentí muy cómodo.

Agradezco a @jplagostena y @TefiMiguel por la haber habilitado esta oportunidad y por coordinación, impecable.

Comparto aquí algunas fotos y los materiales:

Notas del workshop de TCR

Ayer por la tarde/noche en la oficinas de Grupo Esfera hicimos un mini-taller exploratorio de test && commit || revert. Fuimos 9 participantes, todos practicantes de TDD. Comenzamos la sesión con un poco de contexto:

  • El código va con tests. No se discute.
  • Los tests pueden hacerse a priori o a posteriori. Podemos debatirlo.
  • TDD implica Test a priori pero Test a priori no implica TDD. Es definición.

En términos formales hay dudas sobre los beneficios de TDD

There’s no convincing evidence that TDD consistently fares better than any other development method, at least those methods that are iterative.

What Do We (Really) Know about Test-Driven Development?
(2018) I. Karac and B. Turhan, in IEEE Software, vol. 35, no. 4, pp. 81-85, July/August 2018. doi: 10.1109/MS.2018.2801554

Algunos autores sugieren que los beneficios de TDD no se deben al hecho de escribir los tests a priori sino al hecho de trabajar en pequeños incrementos:

The claimed benefits of TDD may not be due to its distinctive test-first dynamic, but rather due to the fact that TDD-like processes encourage fine-grained, steady steps that improve focus and flow.

A Dissection of the Test-Driven Development Process: Does It Really Matter to Test-First or to Test-Last?,
(2017) D. Fucci, H. Erdogmus, B. Turhan, M. Oivo and N. Juristo, in IEEE Transactions on Software Engineering, vol. 43, no. 7, pp. 597-614, 1 July 2017.doi: 10.1109/TSE.2016.2616877I.

Dicho todo nos propusimos probar la técnica TCR que propone trabajar en mini-incrementos. Pusimos entonces las manos en el teclado para resolver algunos ejercicios. Lamentablemente nos quedamos cortos de tiempo, pero acordemos agendar otro encuentro para seguir experimentando.

Les dejo un video del propio Beck haciendo un ejercicio al estilo TCR.

Finalmente les comparto aquí un video que hice mientras resolvía la Kata de Chopper que propuse hacer como primer ejercicio del workshop.

Notas de mi Taller de TDD en CONAIISI 2018

La semana pasada estuve en Mar del Plata participando del sexto Congreso Nacional de Ingeniería en Informática y Sistemas de Información. En ese contexto hice mi Taller Introductorio de Test-Driven Development.

Del taller participaron unas 15 personas de 7 universidades distintas. La evaluación general del taller fue 4.6/5.

Comparto aquí los materiales de estudio que recomendé a los participantes para profundizar en los temas vistos:

Agradezco a la organización del CONAIISI por haberme dado la posibilidad de dar este taller en el contexto de la conferencia.

Taller de TDD (gratuito para estudiantes)

En nuestro proyecto de investigación en UNTREF trabajamos en el estudio de prácticas y procesos de desarrollo. En ese contexto hemos armado un taller prácticas de desarrollo ágiles enfocado en Test-Driven Development, Continuous Integration y Pair-Programming. El siguiente video explica brevemente la dinámica de taller.

Si hay alguna universidad que esté interesada en realizar este taller en sus instalaciones solo tienen que ponerse en contacto conmigo.

Taller de TDD, CI & Pair-Programming

En el contexto de las Jornadas de Ingeniería de Software del Uruguay, estuve haciendo un Taller sobre Test-Driven Development, Continuous Integration & Pair-Programming.

Participaron del taller unas 19 personas y a pesar de algunos imprevistos (como que la gente no hubiera leído los materiales de preparación), el taller salió muy bien. La evaluación general del taller fue 4.4 / 5.

Dejo aquí los recursos que compartí con los asistentes del taller: