Il y a 8 ans -
Temps de lecture 6 minutes
Chapitre 13 du livre de Sandro Mancuso sur le Software Craftsmanship
Comme chaque semaine, nous vous proposons un résumé d’un chapitre de l’excellent livre de Sandro Mancuso Software Craftsmanship – Professionalism Pragmatism Pride. Nous vous proposons cette semaine le résumé du chapitre 13 décrivant l’importance pour une entreprise de cultiver une culture de l’apprentissage.
Si vous êtes intéressés par la vision d’un craftsman sur son logiciel vous pouvez retrouver Sandro dans le catalogue de formation de Xebia Training.
Déjà publié :
- Software Development
- Agile
- Software Craftsmanship
- The Software Craftsmanship Attitude
- Heroes, Goodwill and Professionalism
- Working Software
- Technical Practices
- The Long Road
- Recruitment
- Interviewing Software Craftsmen
- Interview Anti-patterns
- The Cost Of Low Morale
Culture of Learning
Dans ce chapitre Sandro Mancuso décrit l’importance d’apporter une culture de l’apprentissage au sein de son environnement de travail. Il décrit les méthodes permettant de la créer, les pièges à éviter et donne des pistes pour réussir à l’installer lorsque des personnes restent réticentes.
Créer une culture de l’apprentissage
L’auteur part du postulat qu’on ne peut amener le changement auprès de gens démotivés ou non-concernés par leur travail en tant que développeur. On ne peut pas non plus forcer les gens à adopter de nouvelles méthodes. Pour que les personnes adoptent de nouvelles pratiques, il est bien plus efficace de créer une culture de l’apprentissage en ramenant la passion au cœur de la société. En effet, beaucoup de développeurs juniors n’ont pas eu la chance de travailler dans un environnement stimulant et sont persuadés que le métier de développeur est ennuyeux et préfèrent s’orienter vers des postes d’architectes ou de managers. Pourtant ils pourraient apprendre à aimer leur profession s’ils arrivaient à y trouver de l’amusement et s’ils prenaient plaisir à sortir de leur zone de confort. La culture de l’apprentissage est un cercle vertueux profitant à la fois aux développeurs et à la société. Pour l’instaurer au sein de son environnement de travail l’auteur propose différentes techniques :
-
Club de lecture
On choisit un livre et on prévient ses collègues que l’on compte le lire en leur précisant le contenu et en leur demandant s’ils seraient intéressés pour en discuter. Si personne n’est intéressé, on peut essayer de trouver un sujet convenant à la majorité. -
Brown Bags Sessions
Il s’agit de rencontres ayant lieu le midi et où chacun ramène son déjeuner et se retrouve pour discuter de sujets techniques. Ces rencontres se déroulent sans formalisme et sont centrées sur l’idée d’apprendre. Les gens sont libres de pouvoir aussi y donner de courtes présentations.
-
Discussions de groupe (tables rondes)
Les discussions de groupe consistent à réunir un groupe de personnes autour d’un tableau divisé en deux parties : les « lightening talks » (courte présentation de 5 à 10 minutes) d’un côté et les sujets à discuter en groupe de l’autre. Les participants disposent de post-its sur lesquels ils doivent écrire soit le titre d’un ligthening talk qu’il souhaiterait donner, soit un sujet qu’il aimerait voir abordé. On commence par les lightening talks et si les questions qui s’en suivent dépassent deux minutes, alors on fait basculer le post-it dans la colonne des sujets à discuter. On enchaîne ensuite avec les sujets de discussions et ceux les ayant proposés sont invités à expliquer en trente-secondes ce dont il s’agit. Une fois que tous les post-its sont épuisés, on essaye de fusionner les sujets similaires en s’assurant du consentement de tout le monde puis on passe au vote. Le sujet intéressant la majorité des participants est retenu pour la discussion.
-
L’échange de projets
Pour casser la routine qui s’installe lorsque l’on travaille depuis longtemps sur la même chose, l’auteur propose le temps d’une itération ou de quelques heures, de faire du pair-programming avec quelqu’un travaillant sur un autre projet. Cela permet aux développeurs de découvrir de nouvelles façons de faire et aux bonnes idées de se propager vers d’autres équipes.
-
Revue de code en groupe
Les revues de code permettent de débattre autour d’une partie du code d’une application afin de trouver comment l’améliorer. Cette pratique débouche souvent sur des échanges stimulants entre développeurs. Néanmoins, elle doit se faire selon certaines règles. Ainsi il ne faut pas chercher à s’intéresser à l’auteur du code actuel ou partir à la recherche des causes. L’idée est de se concentrer sur le futur du code.
-
Hands-On Coding Sessions
Ce sont des sessions où les développeurs se réunissent ensemble pour écrire du code. Pour que celles-ci soient efficaces, les développeurs doivent travailler en paire, pratiquer le TDD et tout le monde doit s’essayer au même exercice. Un facilitateur est désigné pour conduire la session et mener la rétrospective durant laquelle les développeurs pourront partager ce qu’ils ont appris et comment ils s’y sont pris pour résoudre leurs problèmes. Il est préférable que ces sessions ne concernent pas une technologie précise car cela aura vocation à attirer plus de monde. Il est ainsi possible de proposer un kata auquel on aura ajouté des contraintes en laissant aux développeurs le soin de choisir son implémentation.
-
Communautés internes
Une fois que les sessions ont lieu régulièrement et qu’une certaine routine s’est installée, on peut alors inviter d’autres développeurs à faire partie de l’équipe d’organisation. Seules deux personnes sont nécessaires pour démarrer une communauté et attirer d’autres gens au fil du temps. Il faut se concentrer sur la qualité des sessions et y prendre du plaisir plutôt que de chercher à faire croître rapidement le nombre de personnes qui en font partie.
-
Pet-projects
Il s’agit de libérer du temps où les développeurs peuvent développer leurs « pet-projects ». Ces projets sont intéressants car les développeurs peuvent essayer de nouvelles idées, technologies ou techniques librement sans aucune contrainte.
-
Communautés externes
Il ne faut pas s’arrêter à la création d’une communauté interne au sein de sa société mais aussi penser à regarder s’il n’en existe pas au sein de sa ville. C’est un bon moyen d’y aller entre collègues et de voir comment il est possible d’y contribuer. Cela permet de motiver les personnes et d’avoir de nouvelles idées.
Comment faire si personne ne vient se joindre aux initiatives ?
Persuader les gens de changer de comportement est une tâche difficile et il peut arriver que personne ne veuille se joindre aux initiatives listées ci-dessus. Sandro Mancuso met en garde contre l’envie de vouloir changer toute une organisation d’un seul coup et recommande de se concentrer sur ceux qui manifestent un intérêt à ces changements notamment en pair-programmant avec eux jusqu’à nouer un lien et avoir du plaisir à développer ensemble. Il ne faut pas oublier qu’avant de vouloir faire adopter de nouvelles pratiques, il convient de les appliquer à soi et d’en être finalement un porte-étendard. Si certains ne veulent pas participer, il ne faut pas les forcer sous peine de prendre le risque de perdre sa motivation. Enfin pour que ces nouvelles habitudes perdurent, il faut que les rencontres soient programmées à des intervalles réguliers et que leurs organisations restent simples. Il n’y a pas non plus besoin de demander la permission pour progresser sur son temps personnel du moment que l’on reste responsable et que l’on respecte les engagements pris sur les projets.
L’auteur conclut sur ces mots : « Ce n’est pas difficile d’apporter une culture de l’apprentissage au sein d’une organisation. La seule chose nécessaire est un développeur passionné prêt à démarrer. Arretez de vous trouver des excuses et soyez ce développeur.»
Commentaire