Publié par
Il y a 3 années · 6 minutes · Craft

Chapitre 13 du livre de Sandro Mancuso sur le Software Craftsmanship

sandro_book-xebia.pngComme 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é :

  1. Software Development
  2. Agile
  3. Software Craftsmanship
  4. The Software Craftsmanship Attitude
  5. Heroes, Goodwill and Professionalism
  6. Working Software
  7. Technical Practices
  8. The Long Road
  9. Recruitment
  10. Interviewing Software Craftsmen 
  11. Interview Anti-patterns
  12. 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.»

Laisser un commentaire

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