Atelier technique : coding dojo autour du KataTennis

15 mai 2012

Un premier atelier technique interne a été organisé avec succès autour d'un KataTennis. L'exercice proposé a pour but d'approfondir deux pratiques permettant d'assurer la qualité de ses développements : le TDD (Test Driven Developement) et le Ping Pong programming.

Quelques définitions avant de commencer

Un kata est un exercice de programmation, que l'on répète plusieurs fois jusqu'à le maîtriser parfaitement (d'où le nom provenant des arts martiaux). TDD - Développement piloté par les tests : technique qui préconise d'écrire les tests unitaires avant d'écrire le code source d'un logiciel.
Le principe du TDD est simple, il suit un cycle précis : écrire un test qui échoue, implémenter le code minimum qui fait passer le test, refactorer, puis on commence un nouveau cycle.
Ping-Pong Programming : Pratique de développement en binôme où un pilote et un co-pilote réfléchissent sur le même problème en alternant l'écriture d'un test qui échoue et l'implémentation du code minimum pour passer le test. Bdd (Behavior Driven Development) : autre approche pour exprimer des tests, qui se basent sur le comportement attendu d'une fonctionnalité et non du fonctionnement interne de l'algorithme.

Le KataTennis : exercice de programmation, support de l'atelier technique

Le déroulement de l'atelier

Objectif : Implémenter le calcul du score dans une partie de tennis.
Source : KataTennis, sur http://codingdojo.org.

Sur une durée totale de 1 heure, les principes de TDD et de Ping-Pong Programming ont été dans un premier temps rappelés aux participants.
Ces pratiques sont utilisées progressivement au sein des projets menés depuis maintenant 1 an.

Dans un deuxième temps l'exercice de programmation, ici le KataTennis, leur a été présenté.
Puis chacun est ensuite rentré dans le vif du sujet pour s'attaquer au développement.

Enfin, un tour de table a permis à chacun d'exprimer son ressenti sur l'expérience.

L'évènement s'est conclu par une petite présentation et des échanges autour du BDD.

Cet évènement a été organisé par Julien LAFONT et Vivian PENNEL, et facilité par Julien.

Bilan de l'exercice

Après un premier temps d'appréhension des participants, notamment ceux n'ayant jamais participé à des évènements de type coding dojo ou code-retreat, tous se sont pris au jeu et ont passé un bon moment dans une ambiance décontractée.

Les principaux points qui ressortent du bilan sont les suivants :

  • Le refactoring est une phase entière du développement, et la couverture de tests permet de refactorer sans crainte.
  • Il ne faut pas s'interdire de réfléchir, il y a un compromis à faire entre la solution minimaliste et la solution qui répond au besoin.
  • Un des gros défauts des informaticiens est qu'ils ont tendance à "sur-ingénierer" les problématiques. Y aller petit à petit permet de contrecarrer ce phénomène.
  • C'est intéressant de travailler en binôme de cette manière, cela permet de mieux réfléchir au problème et de ne pas rester bloqué sur un point de détail

Un sondage a été réalisé pour évaluer le ressenti des participants autour d'une question : "Est-ce que le temps que j'ai investi pour participer à cet atelier valait vraiment le coup ?". Voici les résultats :

Votes Choix
67% Ça valait bien plus que le temps qu’on y a passé
33% J’ai gagné plus que le temps que j’y ai passé
0% Intéressant, je ne regrette pas d'y être allé, sans plus
0% Utile, mais ça ne valait pas à 100% le temps que j’y ai passé
0% Je n’ai rien gagné, rien appris. J’ai vraiment perdu 1 heure !


Cet évènement a été un succès, à renouveler, et pourquoi pas à terme à ouvrir à des participants externes à IOcean.

Pour aller plus loin

  • les pratiques de Kata sont issues du mouvement Software Craftsmanship qui, en résumé, insiste sur le fait que le développement logiciel n'est pas une science mais se rapproche plus de l’artisanat.
  • un excellent livre traitant de ces problématiques : The clean coder, de Robert C. Martin 
  • la conférence "Pilotage par les tests" donnée à l'Agile Tour Montpellier 2011, par Jérôme Avoustin
En poursuivant votre navigation sur notre site, vous acceptez l’utilisation de Cookies pour nous permettre d'établir des statistiques de visites et ainsi améliorer notre site suivant votre utilisation.Cliquer ici pour ne plus afficher ce messageCliquer ici pour en savoir plus...
En poursuivant votre navigation sur notre site, vous avez accepté l’utilisation de Cookies pour nous permettre d'établir des statistiques de visites et ainsi améliorer notre site suivant votre utilisation.Cliquer ici pour ne plus afficher ce messageCliquer ici pour en savoir plus...