Quand j'ai voulu encourager l'utilisation du développement piloté par les tests, j'ai dirigé un Cyber-Dojo . Avec ce type d'exercice, l'accent n'est pas mis sur le code lui-même, mais sur le processus d'écriture du code .
Nous avons passé un après-midi, à deux, à répéter les mêmes kata, mais dans des conditions différentes. Nous avons commencé avec tous les groupes faisant un exercice en même temps. Cela a fourni une base de référence.
Nous avons ensuite discuté de certains des principes de base du TDD, fait changer de partenaire et répéter le même kata. Nous avons répété le même kata pour minimiser la génération de code et concentrer à la place les gens sur le processus de nommage des cas de test et du cycle Rouge / Vert.
Ensuite, nous avons répété le kata à nouveau, mais environ toutes les 10 minutes, une personne dans chaque groupe se déplaçait vers un autre groupe, simulant les environnements d'équipe plutôt fluides que nous nous trouvons souvent ces jours-ci.
Dans l'itération finale, nous avons eu les deux partenaires changer toutes les 10 minutes environ en groupes différents. Cela a permis de démontrer qu'avec TDD, même le transfert d'une équipe à une équipe complètement différente ne devait pas nécessairement être trop pénible, car le projet ne devrait être exécuté que sur un cycle rouge / vert.
La chose intéressante était qu'il y avait peu de gens qui avaient fait un TDD avant la session, mais ce que les connaissances TDD y ont été rapidement diffusées jusqu'à l'itération finale à travers le kata, la plupart des gens pensaient de manière TDD ou pouvaient au moins comprendre pourquoi il pourrait être bénéfique.
Les gens ont généralement dit que l'après-midi était à la fois amusant et instructif et nous examinons maintenant d'autres façons d'utiliser Cyber-Dojo sur mon lieu de travail.
Cyber-Dojo , écrit par Jon Jagger , fonctionne incroyablement bien pour ce genre d'exercice. Il est un environnement intégré basé sur le Web pour faire la pratique délibérée de TDD et d' apprentissage sur la dynamique de l' équipe. Il a beaucoup de kata sélectionnés spécifiquement pour aider les gens à se concentrer sur le processus de TDD et non sur le problème. Il prend également en charge une gamme de langages, de Python et Ruby à Java et C ++.
La meilleure chose est qu'après avoir fait un kata, vous pouvez ensuite revenir en arrière et regarder la progression rouge / verte (ou peut-être pas * 8 ') de chacun des groupes participants. C'est des feux de circulation sont une excellente façon de visualiser comment le processus fonctionne TDD.
Si vous voulez votre propre serveur CyberDojo, tout le projet peut être trouvé sur github et il y a même une machine virtuelle d'appliance Linux clé en main liée à partir de là, ce qui signifie qu'en supposant que vous avez déjà installé VMware player ou VirtualBox , vous pouvez être opérationnel dans quelques minutes de téléchargement de l'appliance!