Présentation

Les codings dojo sont des réunions où des développeurs se rassemblent pour résoudre ensemble des problèmes de programmation. Le but est de créer un environnement rassurant pour que chaque développeur puisse développer ses connaissances et apprendre de ses erreurs.

Les coding dojo viennent de l’extreme programming, l’extreme programming est une méthode agile, elle est beaucoup moins utilisée en entreprise que Scrum la méthode agile la plus connue.

L’extreme programming diffère des autres méthodes agiles car elle met en avant deux principes de programmation : le Test Driven Development et la programmation en binôme.

Il faut noter qu’il existe de multiples variations sur les coding dojo. Il n’y a pas véritablement de marche à suivre ni de livre qui fait référence. Vous êtes libre d’adapter le coding dojo comme vous le voulez. Après tout il faut aussi être agile dans l’organisation des coding dojo et voir ce qui fonctionne ou ce qui ne fonctionne pas.

Organisation d’un coding dojo

Il y a 3 types de participants.

Le dojo master : il va s’occuper de préparer la salle avec un vidéoprojecteur, il va préparer le sujet, s’assurer du respect du temps et de l’organisation globale du coding dojo.

Les participants actifs : ils prennent part à la résolution du problème en écrivant le code.

Les participants passifs : ils ne prennent pas directement part au codage mais peuvent intervenir en posant des questions.

Le nombre total des participants doit être réduit (une dizaine) pour que tout le monde puisse s’exprimer. L’exercice donné ne doit pas être trop complexe pour éviter d’avoir des personnes qui décrochent trop vite.

Les exercices peuvent être très différents, ils peuvent servir à apprendre le TDD , le refactoring, les designs patterns, les bonnes pratiques…

Le randori kata dojo

Dans cette version du dojo, on reprend les principes de l’extreme programming la programmation s’effectue par pair et on pratique le Test Driven Development.

Le dojo master commence par expliquer le problème à résoudre, généralement il ne donne pas le problème en entier mais le découpe en plusieurs parties simples.

Devant le clavier se trouve le conducteur qui écrit le code et l’observateur qui regarde et aide le conducteur, les deux doivent collaborer pour résoudre le problème. Au bout d’un certain temps le conducteur retourne dans la salle, l’observateur prend la place du conducteur et un membre de l’audience prend la place de l’observateur. Généralement les gens dans la salle doivent rester silencieux, ils peuvent néanmoins aider si les deux programmeurs actifs sont bloqués. Ils peuvent aussi intervenir à chaque changement d’intervenant en proposant d’autres solutions possibles ou en posant des questions s’ils n’ont pas compris.

Les programmeurs doivent coder en utilisant le TDD.

Le kata dojo preparé

Dans cette version un participant à déjà résolu un problème, il le refait devant les autres participants, ceux-ci posent des questions et peuvent intervenir à tout moment pour proposer d’autres solutions ou apporter d’autres solutions.

Le coding dojo dans la réalité

Le coding dojo est un excellent outil pour améliorer ses techniques de programmation. Malheureusement tout n’est pas aussi simple.

Les problèmes :

Le niveau des programmeurs: il vaut mieux avoir des niveaux homogènes parmi les programmeurs, les personnes qui ne sentent pas à la hauteur peuvent rapidement être déstabilisées.

La programmation par pair : c’est une méthode peu utilisée dans le monde de l’entreprise, tout le monde a l’impression que le temps de développement va augmenter et que les développeurs seront moins productifs. Au niveau des développeurs il faut que les deux personnes communiquent pour vraiment apporter une plus-value.

Le cadre : les coding dojo doivent être basés sur le volontariat, il ne faut pas imposer ce genre d’exercice, il faut arriver à avoir une ambiance très détendue pour que les personnes aient l’envie de venir et de revenir. Difficile d’imaginer des coding dojos dans un cadre professionnel.

L’évaluation des programmeurs : souvent sous la couverture de la formation et de l’amélioration de la qualité des codes se cache un objectif moins avouable : l’évaluation des compétences des programmeurs. En effet quand vous faites tourner le PC et que tout le monde voit votre code au vidéoprojecteur vous voyez tout de suite les « bons » des « moins bons » développeurs.

Conclusion

Il faut tester pour voir. En participant vous allez apprendre des choses, c’est toujours intéressant de voir comment les bons programmeurs codent, comment ils utilisent l’environnement de développement et comment ils appréhendent la résolution d’un problème. Après il faut bien sélectionner les gens avec qui vous allez vous exercer, il ne faut pas avoir peur de l’échec. Pour ma part je pense qu’il vaut mieux effectuer ce genre d’exercice entre personnes de connaissance et avec qui vous vous sentez en confiance.