Le premier « coding dojo » est né du constat que la plupart des développeurs n’avaient que leur travail, leurs réalisations professionnelles, pour améliorer leurs connaissances et leurs techniques de développement. L’idée était alors de les sortir de leur environnement habituel de travail et de les amener à collaborer ensemble sur un thème précis ou à la résolution d’un problème particulier. L’objectif est de favoriser les échanges et de placer les développeurs dans une position leur permettant d’apprendre et de s’améliorer. Voyons plus en détail comment se compose un coding dojo, comment l’organiser et ce qu’il peut apporter aux participants.
Qu’est-ce qu’un coding dojo ?
Vous entendez régulièrement parler des coding dojo, organisés par des associations, des groupes d’utilisateurs ou lors de salons professionnels, mais vous ne savez pas exactement ce que c’est ?
Les équipes de développement travaillent souvent à flux tendus, avec des délais relativement courts comparés à la charge de travail totale. Ils n’ont donc que rarement l’occasion de prendre du recul sur leurs connaissances et sur leurs pratiques, ni même d’échanger entre eux. Même s’ils travaillent ensemble, chacun le fait à sa façon, et ne sait pas nécessairement ce que les autres pourraient lui apporter, et n’a sans doute pas non plus conscience de ce qu’il pourrait apporter aux autres.
Le principe du coding dojo est d’organiser un rassemblement de vos développeurs et de les faire travailler ensemble à la réalisation d’un défi technique. Le thème du défi doit être suffisamment précis pour ne pas risquer de hors-sujet, et suffisamment intéressant pour motiver les développeurs. Le défi n’est généralement pas en rapport avec les projets sur lesquels travaillent actuellement les équipes. L’objectif n’est pas de faire avancer le travail sous couvert d’un défi plus ludique, mais bien d’amener les participants à échanger et à apprendre.
Le coding dojo est généralement relativement court, entre une et deux heures. Il peut concerner un langage de programmation, un outil particulier et être composé de plusieurs exercices de différents formats. On peut considérer qu’un coding dojo est réussi lorsque tous les exercices prévus ont été réalisés avec succès dans le temps imparti et que chaque développeur est capable de les compléter de nouveau par lui-même.
Que peut apporter un coding dojo à vos équipes ?
Le coding dojo, dans son principe et son organisation, est très lié aux méthodes agiles et à l’extreme programming. Non seulement les participants vont acquérir des connaissances techniques et méthodologiques (et faire profiter les autres de celles qu’ils maîtrisent le mieux), mais ils vont également mettre en œuvre et approfondir les principes de l’agilité.
Dans la mesure où les participants se trouvent dans un environnement non compétitif et collaboratif, les échanges et les apprentissages sont facilités. Il est possible d’apprendre quelque-chose, quel que soit son niveau de compétences. Si le débutant apprendra beaucoup de ses pairs, le développeur expérimenté va pouvoir approfondir ses connaissances, mais également prendre du recul par rapport à ses propres pratiques, grâce notamment aux questionnements des autres participants.
C’est également l’occasion de tester certaines innovations. Certaines solutions techniques pas suffisamment abouties pour être utilisées sur un projet réel peuvent ici être expérimentées, améliorées et éventuellement validées pour une utilisation future.
Parmi les bonnes pratiques que peut apporter le coding dojo, il y a le TDD (Test Driven Development) ou développement piloté par les tests. En effet, l’objectif n’est pas uniquement de trouver une solution pour répondre au défi, mais de trouver la solution la plus belle, la plus efficace et la plus solide possible. En cela, le TDD va permettre une approche par petits pas, en validant chaque étape et en vérifiant qu’aucune régression n’est introduite. Chaque étape devra être expliquée, partagée, commentée et critiquée, de façon à ce que le travail de groupe puisse mettre en valeur les points forts et les points faibles de la solution trouvée.
Quelques conseils pour un coding dojo efficace
L’organisation de coding dojo doit idéalement être intégrée dans le processus d’amélioration continue. Des coding dojo réguliers vont permettre de mettre en place une dynamique d’apprentissage et d’entraide au sein de l’équipe. Ces moments à part deviendront vite un rendez-vous attendu de tous.
La rétrospective coding dojo
Un coding dojo va toujours commencer par une rapide rétrospective, permettant de se remettre en mémoire la session précédente, ce qui a bien fonctionné et les points négatifs. Généralement, 30 minutes suffisent pour réaliser cet exercice. Si le sujet du coding dojo n’a pas encore été fixé, les participants peuvent prendre une dizaine de minutes pour décider ensemble.
Les exercices de programmation
Vient ensuite le temps de la programmation. Compter environ 40 minutes pour cette phase, durant laquelle les développeurs vont essayer de relever le défi qui leur est proposé. Une pause d’une dizaine de minutes va permettre d’échanger sur les différentes solutions envisagées et sur les pratiques utilisées. Ensuite, les développeurs enchaînent sur une seconde période de 40 minutes de programmation.
Les exercices ou défis proposés durant ces deux périodes de 40 minutes peuvent être de deux types :
- le kata préparé
- ou le randori.
Le kata préparé
Lors d’un kata préparé, l’exercice est présenté et réalisé par la personne ayant choisi le sujet du coding dojo. Ce développeur va présenter aux autres une ébauche de solution et expliquer chaque étape, en utilisant le TDD. Il est possible d’interrompre l’animateur à n’importe quel moment de façon à lui demander des précisions, lui poser des questions ou lui proposer des solutions alternatives.
Le randori
Lors du randori, les développements sont réalisés en pair programming, et tout le monde est invité à participer. Les participants vont se succéder en binômes pour faire avancer les développements durant une période allant de 5 à 10 minutes. Chaque binôme est composé d’un pilote et d’un copilote. Afin de conserver une certaine continuité, un seul développeur est changé dans le binôme à chaque tour. Le pilote quitte le binôme, le copilote devient pilote et un autre participant vient compléter la paire. Une variante consiste à faire travailler plusieurs binômes en parallèle de façon à confronter ensuite les différentes solutions trouvées.
Les ressources nécessaires
L’organisation d’un coding dojo va naturellement nécessiter une salle suffisamment grande pour accueillir tous les participants confortablement. Au moins un ordinateur et un vidéoprojecteur seront nécessaires si seul l’animateur est amené à écrire du code. Si les exercices doivent être réalisés simultanément par les participants, ils devront naturellement disposer également d’un ordinateur chacun.
Pour conclure sur le coding dojo
Un coding dojo est différent d’une formation. Il va concerner un cas pratique bien particulier, beaucoup plus ciblé qu’une formation qui va rester plus générale. Les objectifs ne sont pas les mêmes. Là où la formation va principalement demander un travail individuel aux participants, le coding dojo va les amener à collaborer et à échanger, tant sur les aspects techniques que sur les méthodes de travail. Il s’agit donc d’un moyen efficace de faire progresser à la fois sur les plans individuels et collectifs les développeurs, en-dehors de leurs projets habituels. Le coding dojo va permettre à chaque développeur de découvrir de nouvelles techniques, d’apprendre des autres et de consolider ses connaissances.
La solution de gestion de projet en ligne Nutcache propose tous les outils nécessaires pour bien organiser vos coding dojo. N’hésitez pas à tester gratuitement la solution durant 14 jours.