Cuando quería alentar el uso de Test Driven Development , ejecuté un Cyber-Dojo . Con este tipo de ejercicio, el énfasis no está en el código en sí, sino en el proceso de escribir el código .
Pasamos una tarde, en parejas, repitiendo el mismo kata, pero en diferentes condiciones. Comenzamos con todos los grupos haciendo un ejercicio al mismo tiempo. Esto proporcionó una línea de base.
Luego discutimos algunos de los principios básicos de TDD, hicimos que todos cambien de pareja y repitan el mismo kata. Repetimos el mismo kata para restar importancia a la generación de código y, en cambio, concentrar a las personas en el proceso de nombrar casos de prueba y el ciclo Rojo / Verde.
Luego repetimos el kata nuevamente, pero aproximadamente cada 10 minutos una persona en cada grupo se mudaría a otro grupo, simulando los entornos de equipo bastante fluidos en los que nos encontramos en estos días.
En la iteración final, hicimos que ambos socios cambiaran cada 10 minutos más o menos en diferentes grupos. Esto ayudó a demostrar que con TDD, incluso la transferencia de un equipo a otro completamente diferente no necesariamente tiene que ser demasiado dolorosa, ya que el proyecto solo debería ser un ciclo Rojo / Verde de funcionamiento.
Lo interesante fue que había pocas personas que habían hecho algún TDD antes de la sesión, pero el conocimiento de TDD allí se extendió rápidamente hasta que en la iteración final a través del kata, la mayoría de la gente pensaba de forma TDD o al menos podía apreciar por qué podría ser beneficioso
La gente generalmente dijo que la tarde fue divertida e informativa y ahora estamos buscando otras formas de usar Cyber-Dojo en mi lugar de trabajo.
Cyber-Dojo , escrito por Jon Jagger , funciona increíblemente bien para este tipo de ejercicio. Es un entorno basado en web integrado para hacer la práctica deliberada de TDD y aprender sobre la dinámica del equipo. Tiene muchos katas seleccionados específicamente para ayudar a las personas a concentrarse en el proceso de TDD y no en el problema. También es compatible con una variedad de lenguajes, desde Python y Ruby hasta Java y C ++.
Lo mejor es que, después de hacer un kata, puedes volver y mirar la progresión roja / verde (o tal vez no * 8 ') de cada uno de los grupos participantes. Sus semáforos son una excelente manera de visualizar cómo funciona el proceso TDD.
Si desea su propio servidor CyberDojo, todo el proyecto se puede encontrar en github e incluso hay una máquina virtual de dispositivo Linux llave en mano vinculada desde allí, lo que significa que suponiendo que ya tenga instalado VMware player o VirtualBox , puede estar funcionando dentro de ¡unos minutos de descarga del dispositivo!