Gradiant, mi primer Curso de TDD
Publicado por Toño de la Torre el 20/08/2018
A principios del pasado Junio volvimos a las oficinas de Gradiant en Vigo para impartir nuestro Curso de TDD. Gradiant es el acrónimo en inglés del Centro Tecnolóxico de Telecomunicacións de Galicia (Galician Research and Development Center in Advanced Telecommunications). Este centro aplica los conocimientos y experiencia de sus profesionales de investigación para aportar valor a empresas y organizaciones mediante la transferencia de conocimiento y el diseño de productos especializados.
Además el campus en el que se encuentran sus oficinas está en medio del bosque, y tienen una vista preciosa desde las oficinas. Seguro que compensa el extra de tiempo de desplazamiento.
Nos hizo muchísima ilusión cuando nos llamaron para impartir el curso, no sólo porque volvieran a confiar en Codesai para formar a sus desarrolladores, sino también, porque recordamos con mucho cariño el curso de TDD que impartimos allí a finales de 2016, de la mano de Manu Rivero y Luis Rovirosa.
En esta ocasión impartimos el curso Manu Rivero y yo. Nos gusta impartir nuestros cursos en pareja siempre que podemos porque creemos que el nivel de atención que reciben las parejas durante las sesiones prácticas es mucho mejor. Además dar cursos juntos es una gran oportunidad para trabajar presencialmente y compartir experiencias con compañeros que trabajan normalmente en proyectos diferentes.
Como habéis podido intuir del título del post, fue mi primer curso de TDD. No soy novato dando formaciones y no me es extraño enfrentarme a esa situación en la que te observa una clase, pero hasta ahora no había tenido la oportunidad de dar nuestro curso de TDD.
Como os podéis imaginar dar una formación no es llegar allí el primer día y leer las transparencias. El trabajo que lleva detrás es importante, incluso sorprende, porque este tipo de cursos no tienen una gran carga teórica, son muy prácticos. Pero no se trata de prepararse la teoría únicamente, pues en conjunto es muy poco tiempo, sino, sobre todo de hacer previamente varias veces cada uno de los ejercicios, identificar los puntos de mayor dificultad, discutir las posibles soluciones, y extraer las lecciones de cada uno de ellos.
Esas lecciones tienen que tener una base firme, porque no se trata solo de detectar que algo te huele mal, o intuir que por ahí van los tiros. Se trata de entender las razones por las que algo es una buena práctica o es una buena decisión de diseño. Profundizar en estos fundamentos y principios me resultó muy útil, no sólo para impartir esta formación, sino también para mi día a día en el trabajo.
Al final, preparar este curso nos ha llevado unas 8 semanas de trabajo, dedicando algunas horas, fuera de los proyectos en los que cada uno estamos trabajando.
Ya hablando más concretamente del curso, fue realmente bien. Disfruté mucho viendo trabajar al equipo en cada kata. Como ya pasó en el curso de 2016, la heterogeneidad de los asistentes era muy grande, debido a la gran variedad de proyectos, tecnologías y tipos de sistemas que se desarrollan en Gradiant, (C empotrado para procesado de señales o IOT, APIs REST con Java o node, análisis de datos con Scala, diversas aplicaciones en Java o C++, etc.). Esta diversidad hizo que surgieran conversaciones y debates muy interesantes durante el curso.
El nivel de los asistentes a este curso fue más alto que el que encontramos en el grupo del curso de Diciembre de 2016. Esto creo que se debe en gran parte a la gran labor que Fernando Vilas y sus compañeros llevan realizando durante estos últimos años en Gradiant (organizando katas, charlas, etc), y a la vibrante actividad de las comunidades de Vigo.
Se notaba que habían estado trabajando internamente, porque las bases eran sólidas y pasamos rápido sobre ellas, y esto nos permitió ir un paso más allá y poder trabajar más en profundidad los detalles de cada ejercicio.
Esto fue interesante tanto para ellos como para los formadores, ya que nos plantearon preguntas en las que muchas veces había varias respuestas posibles y había que pararse a profundizar un rato entre todos. Conversaciones que fácilmente se extendían a las pausas de los cafés.
Algunos de los temas que salieron en las charlas:
- Usar métodos del código de producción en los tests
- DRY vs WET (Write Explicit Tests).
- Trabajo de la persona lejos del teclado.
- Dobles de clases que no son nuestras
- Crear interfaz del colaborador o no.
- Equilibrio entre tests de integración vs Unitarios con Dobles.
Como bola extra, la tarde del jueves Fernando nos invitó a acercarnos a un evento de la comunidad de desarrollo de Vigo y me sorprendió lo bien organizada que está. Me contó que durante el año 2017 hubo tal explosión de grupos de desarrollo que vieron la necesidad de organizarse alrededor de lo que han llamado la Vigo Tech Alliance (www.vigotech.org), que si entráis en su página veréis que lo forman nada menos que 15 grupos de tecnología con un calendario tan activo que marea. Mucho que aprender y llevar a las comunidades de desarrollo que hay en Asturias, especialmente a Agile Asturias. (https://www.meetup.com/es-ES/Agile-Asturias/).
Tanto para Manu como para mi fue un gran placer volver a colaborar con Gradiant. Muchas gracias por confiar en nosotros de nuevo. Además darle las gracias especialmente a Fernando Vilas por toda su ayuda. Y por supuesto a Manu por compartir un par de días en un lugar tan fantástico como Vigo.