Blog Arolla

Petits katas entre amis

On s’est tous probablement posé la question : “que m’apportent les katas dans mon métier ?” Entre collègues (arolliens et alchimistes), on a décidé de mettre à plat nos points de vue à propos de ce sujet. Retour sur cette discussion entre nous : Mathilde, Luc, Dorra, Emmanuel, Kevin et Jean-François. Jean-François : "A quoi sert un kata ?" est la question que beaucoup se posent. Kevin : Je trouve que ce qui est intéressant dans les katas c’est la découverte de nouveaux paradigmes. C’est bien quand tu veux tester ou apprendre un nouveau langage. Dorra, tu as eu recours à ça quand tu as voulu faire ton exemple pour ta présentation en python, non ? Dorra : Effectivement, j’ai adapté ma présentation à NCrafts pour un client. Ce dernier m’a demandé de mettre des exemples en python. Le kata contiguous periods m’a permis de faire mes premiers pas en python. Et j’ai appris le langage en appliquant le TDD et surtout les baby steps, mais c’est peut-être un autre sujet. Kevin : Maintenant que tu connais plusieurs langages, est-ce que tu partirais sur tel ou tel langage en fonction du besoin ? Dorra : Carrément, je pense que je serais plus à l’aise pour choisir un langage ou un autre en fonction du besoin. Mais la question ne concerne pas uniquement les langages, je pense. Ça marche aussi pour les outils et les méthodes. On peut utiliser par exemple une base NoSql pour un besoin et une base Sql pour un autre dans un même projet. Mathilde : En vous écoutant parler, je me suis rappelée que j’avais appris le TDD en kata. Ce qui m’avait permis de décrocher une mission chez un client. En l’appliquant quotidiennement, j’ai amélioré mon niveau craft et j’ai pu ensuite intégrer Arolla. Dorra : C’est un très bon exemple pour voir ce qu’apporte le kata pour un projet. Lors d’une mission de coaching, je faisais du pair-programming toute la journée avec les développeurs de l’équipe et pendant le développement d’un user story, je faisais toujours référence à ce qu’on avait fait sur tel ou tel kata. Kevin : Du coup les katas, ça fait une bonne bibliothèque de coaching. Emmanuel : Oui en faisant plusieurs katas, on se crée un conteneur d’expériences qu’on peut utiliser à la carte pour une situation ou une autre et faire vivre l’expérience à quelqu’un d’autre. Jean-François : En fin de compte, à chacun son utilisation des katas. C’est comme quand on lit un livre, on ne retient pas tous la même chose. Mathilde : C’est vrai qu’en faisant des katas, on travaille en dehors des contraintes du projet et de la pression du résultat. C’est ce qui fait qu’on apprend plus rapidement. Dorra : Si je reformule ce que tu dis, les katas permettent d’expérimenter de nouvelles choses. Mathilde : Oui. En plus, on est dans un autre état d’esprit. On n’a pas la pression de produire. Je pense qu’il faut prendre le temps d’apprendre pour une meilleure production ensuite. C’est difficile d’apprendre et de produire en même temps. Emmanuel : Si je veux apprendre le TDD, je ne vais pas m’arrêter à un seul kata. Il faut en faire plusieurs, n’est-ce pas ? Dorra : Le but de faire des katas est de s’exercer. Donc on ne va pas faire uniquement un seul kata pour apprendre le TDD. On peut apprendre dès le premier kata, mais il en faut plusieurs pour maitriser la méthode. Kevin : Ca dépend de ce qu’on veut tirer du kata. Est-ce juste de la découverte du principe ? si c’est le cas, alors on peut s’arrêter au premier kata si on a compris. Si on cherche l’expertise, alors il en faut plusieurs. Mathilde : Il y aurait donc des contextes différents : un contexte de kata et un contexte de projet ? Kevin : Effectivement, le kata permet d’apprendre. On n’a pas les problématiques liées à l’environnement. On est à l’abri d’une base de données qui tombe en vrac et de l’initialisation de tout un environnement pour pouvoir commencer une tâche. Mathilde : Il ne faut pas oublier que l’avantage d’être dans un projet est justement de pouvoir gérer d’autres aspects que le code : l’environnement, la communication … Si on ne fait que du code dans le projet, on passe à côté d’autres choses intéressantes aussi. Kevin : Le paradoxe est intéressant. Personnellement quand je fais uniquement du code dans un projet, je peux m'ennuyer mais je suis content lors d’un kata de ne faire que du code et de ne pas être inquiété par le setup de l’infrastructure autour. Jean-François : La dichotomie entre apprendre et produire me fait rappeler un article que j’ai lu de Jessica Kerr sur la symmathésie. Sa théorie est que dans une équipe on trouve des développeurs et des outils et tous apprennent les uns des autres. Luc : Dans un kata les contraintes peuvent être choisies à l’avance et puis on est content de faire le kata. Par contre dans un projet, on est obligé de respecter certaines contraintes. Ces dernières reviennent tous les jours contrairement à celles des katas qu’on peut changer. Justement on parlait de changer de langage au début de la discussion mais si la mission est de développer en C# je ne peux pas utiliser un autre langage. Dorra : Ça se négocie avec le client, ça :). Rien ne t’empêche de proposer l’utilisation d’un autre langage parce qu’il est plus pratique ou plus intéressant pour ton contexte. Luc : Effectivement. J’ai un collègue qui a décidé de changer de langage pour un développement. Dorra : Tu vois on peut négocier alors 🙂 Luc : Non il n’a pas négocié. Il est venu un jour et a imposé son langage à toute l’équipe. Mais bon c’est un autre sujet. Dorra : Attendez ! Pourquoi on distingue les katas du projet ? Pourquoi on ne considère pas une US comme un kata ? Si on considère une US comme kata et les contraintes du projet comme celle du kata, ça change la donne, non ?! Luc : La contrainte du projet est le résultat, alors que pour un kata le résultat importe peu. Dorra : Pourtant en observant les participants lors des meetups, ils sont déçus de ne pas finir le kata en fin de session. :p Mathilde : On a évoqué pleins de sujets jusque-là. A quoi sert un kata, l’utilisation de chacun (pour le fun ou plus sérieux), la différence entre le contexte du kata et celui du projet. Kevin : Est-ce qu’on apprend plus grâce au côté ludique ou au côté répétitif ? Emmanuel : Est-ce qu’on apprend plus que sur un projet sachant que dans les projets on a tendance, comme on l’a évoqué plus tôt, à partir sur des tâches monotones ? Jean-François : Il y a beaucoup de choses répétitives dans un projet, mais si on s’en donne la peine, je pense qu’on apprend toujours quelque chose. Qu’importe la situation, on en tire un apprentissage. Luc : Ça nous apprend la patience ou alors à refaire notre CV 🙂 Plus sérieusement, ça nous apprend à repérer les patterns et peut-être à créer un système qui reproduit ce pattern. Dorra : Tu me fais penser à une mission chez un client il y a longtemps. On avait un moteur fourni par la R&D qui nécessitait un fichier de données en entrée et qui fournissait un fichier contenant les résultats bien formatés. À force de le faire à la main à chaque fois, j’ai fini par créer une petite moulinette, qui me générait le fichier d’entrée et qui lisait le fichier de sortie pour en extraire les données et les intégrer dans l’application. Donc à force de répéter les choses, on finit par se poser la question de comment automatiser pour s’éviter de resubir ces choses. Haha ! Mathilde : Tu es entrain de dire qu’à force de répéter les taches inintéressantes, on finit par avoir de l’imagination. Finalement, on n’apprend pas quand on répète les choses mais on finit par avoir de l’imagination pour sortir du cadre. Dorra : Je pense qu’on a le choix entre continuer à faire des tâches ennuyantes indéfiniment et devenir créatif pour trouver une solution. Emmanuel : Sur les katas, à force de répéter, on a tendance à avoir le même résultat. On finit par chercher à essayer d’autres choses en rajoutant des contraintes comme les objets calisthéniques. Jean-François : Pourquoi cette discussion déjà ? Est-ce qu’on cherche des arguments pour inciter les développeurs à faire des katas ? Mathilde : Il vaut mieux éviter les jugements. Ce n’est pas obligatoire de faire des katas. Kevin : Oui. Si on en fait c’est pour notre évolution perso même si indirectement ça impacte l’image de l’entreprise. Emmanuel : On veut répondre aux personnes qui se posent les questions « A quoi me sert de faire un kata ? Pourquoi j’irai coder le soir alors je code déjà toute la journée ? » Dorra : On est d’accord qu’on peut aimer notre métier sans avoir à coder le soir. Luc : Oui effectivement. Beaucoup ne se voient pas faire encore du code après toute une journée de développement et considèrent qu’il faut se reposer le soir ou faire autre chose. Mathilde : On ne fait pas un kata pour faire plaisir aux autres ou pour le mettre en avant dans un CV. Le kata est fait pour améliorer son niveau et pour progresser. Kevin : Oui il ne faut pas le prendre pour une corvée non plus. Luc : Sauf qu’en faisant des katas sur une techno qui finalement disparait, est-ce vraiment utile ? Dorra : Au moment où on veut apprendre cette techno, on ne sait pas si elle va disparaitre ou non. On revient à ce qu’on veut apprendre du kata. Apprendre un outil, un langage ou une méthode, ce n’est pas la même chose. Une méthode peut servir dans la durée, une techno ou une librairie le sera peut-être moins. Ça dépend... Luc : En plus, il commence à se faire tard. La discussion n’est pas close, qu’en pensez-vous ?
Plus de publications

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *