La matrice de l’apprentissage

Le Nouvel An est toujours une bonne occasion de renouer des contacts et j’ai appelé un ami avec lequel je n’avais pas parlé depuis quelques temps. Il est également consultant, donc nous nous sommes retrouvés assez vite à échanger sur notre activité, et je lui ai demandé s’il avait des nouvelles d’une société dans laquelle nous avions travaillé ensemble.

Il m’a dit que leurs projets étaient si chaotiques qu’ils ont décidé d’externaliser leurs applications. Ils ont reconnu qu’ils ne parvenaient pas á maintenir un code source correct: trop complexe, trop de difficultés à mettre en œuvre des évolutions, trop de bugs, les plannings ne sont pas respectés, les budgets sont dépassés et l’image de l’IT et sa crédibilité sont en baisse.

Ma première pensée a été qu’ils avaient fait un grand pas en avant: ils savent qu’ils ne savent pas.

Il existe une matrice appelée « Learning Matrix » qui décrit les 4 étapes pour passer du stade de la non-connaissance à la compétence la plus avancée. Elle est utilisée dans de nombreux domaines, et je l’ai rencontrée pour la dernière fois dans une vidéo enseignant comment jouer et gagner au poker.

Habituellement, toute personne qui débute au poker pense que connaître les règles et quelques stratégies de base est suffisant pour réussir. Certains vont jouer de manière agressive parce qu’ils ont vu un champion gagner de grosses sommes d’argent ou un tournoi en appliquant une pression constante sur leurs adversaires et en employant des bluffs spectaculaires. D’autres vont suivre une stratégie « tight is right » c’est-á-dire pratiquer un jeu serré avec uniquement les meilleures mains. La plupart du temps, ils vont jouer en fonction de la valeur de leurs cartes et ne seront pas à même de reconnaître les situations où ils pourraient gagner avec une petite paire ou quand ils verront leur paire d’as se faire broyer.

J’aime bien l’analogie avec le poker parce que c’est un jeu d’information imparfaite: vous devez prendre des décisions avec une information partielle et incertaine, comme dans la plupart des situations de gestion de projet. Maintenant, prenons un autre exemple.

Vous avez toujours été étonnée par une amie qui est une très bonne cuisinière, par sa capacité à réaliser des plats complexes sans le moindre effort. Ou vous adorez ce programme de télévision où un célèbre chef montre comment cuisiner simplement des plats savoureux. Donc vous décidez de vous lancer, achetez quelques livres, quelques ustensiles et un beau tablier de cuisine. Vos premières expériences sont agréables et encourageantes, mais vous vous rendez vite compte que ce n’est pas si simple et qu’il vous manque certaines connaissances qui tout simplement ne s’apprennent pas dans les livres.


Étape 1 – Non-conscience / Non-connaissance

Vous savez que vous ne savez pas. Vous êtes passés du premier stade de la non-connaissance inconsciente au deuxième stade, lorsque vous savez que vous manquez de compétences (essayons d’éviter le terme ‘incompétent’, par trop péjoratif) :

  • Vous comprenez qu’il faut plus d’aptitudes que vous ne le pensiez.
  • Vous comprenez que vous ne serez pas en mesure de vous améliorer sans acquérir ces nouvelles compétences.

Cette étape est habituellement la plus facile, mais certaines personnes n’atteignent jamais le stade 2. Beaucoup de joueurs de poker aiment raconter ce coup difficile quand ils ont gagné un gros pot en allant à tapis, mais attribuent généralement leurs pertes à la malchance. Ou vous pouvez décider que vous n’allez pas écouter les conseils de ceux dont vous considérez qu’ils ne savent rien du noble art de la cuisine.

Quand il s’agit de gestion de projet et de qualité des applications, il existe tellement de différentes sortes de développeurs, depuis le geek passionné de nouveautés au fatigué grincheux qu’il est difficile de les sensibiliser tous à la possibilité de s’améliorer ou de les décider à appuyer sur le bouton ‘apprentissage’. Certains considèrent même que la programmation est un art que très peu sont capables de comprendre et sont très réticents à tout ce qui pourrait être interprété comme une tentative de contrôler leur travail.

Étape 2 – Conscience / Non connaissance

Maintenant, la vraie difficulté commence à l’étape 2, car la plupart du temps vous ne savez pas quelles connaissances vous manquent.

Vous pouvez essayer de trouver quelques livres avec le risque de ne pas vraiment savoir où chercher et de vous noyer dans un grand nombre de textes, d’articles ou de théories. Vous pourriez passer beaucoup de temps à naviguer sur Internet, sur des blogs ou des forums, et vous abonner á différentes newsletters et découvrir des idées très intéressantes, mais sans jamais savoir comment les mettre en pratique, ni si elles conviennent vraiment. Vous pouvez chercher et essayer différents outils pour vous découvrir finalement déçu et découragé par leur complexité, le manque d’intégration, et la quantité d’efforts nécessaires pour les mettre en œuvre.

Vous vous souvenez la dernière fois que vous ne pouviez pas trouver les clés de votre voiture? Vous commencez à regarder les endroits les plus communs où vous les laisser habituellement, en tournant dans toute la maison jusqu’à ce que vous réalisiez finalement que c’est la troisième fois que vous retournez les coussins du canapé et que ce n’est pas très productif. Alors, vous décidez d’adopter une approche plus systématique et rationnelle, ce qui signifie généralement:

  • Analyser les événements les plus récents – à quand remonte la dernière fois que vous avez vu ces maudites clés, à quel endroit et ce que vous avez fait depuis.
  • Rechercher soigneusement tous les endroits les plus probables et les éliminer un à un.

Il n’ya pas de chemin facile et pas de recette miracle secret, mais dans le cas de cette société qui a choisi la voie de l’outsourcing, sans disposer de plus d’informations sinon leur difficulté à maintenir correctement ses applications, je recommanderais la même approche que dans ce post:

  • Analyser le code source afin d’obtenir une carte de la non-qualité.
  • Echanger avec les stakeholders et les équipes de projet afin de définir les priorités et un périmètre : quels sont les objectifs? Réduire les défauts et améliorer la qualité? Réduire les coûts et améliorer le time-to-market ?
  • Définir un plan d’actions / un processus pour atteindre ces objectifs.

Tout n’est pas compatible, et vous le savez bien: faire mieux, plus vite et moins cher n’est pas de ce monde. Donc faites simple.

Par exemple, identifier les 10 à 15 best practices de programmation qui ne sont pas bien respectées mais qui sont dangereuses pour l’application en termes de robustesse ou la performance. Mettre en place une tolérance 0 pour ces défauts et faire des analyses de code régulières pour les identifier.
Vous pouvez aussi faire un peu de formation: tout le monde aime ça, mais évitez les formations-vacances. Inscrivez votre formation dans un programme basé sur vos objectifs, mettez en pratique immédiatement. Tout le monde aime une belle certification également.

Étape 3 – Conscience / Connaissance

La tolérance zéro ne signifie pas que vous faites ‘boo’ au programmeur qui oublie les bonnes pratiques. Ce n’est pas un manque de connaissance, c’est un manque d’attention. A ce stade, il aura besoin de se concentrer et se souvenir ce qu’il a appris afin de s’améliorer.

Dans la vidéo pour apprendre le poker, l’un des conseils pour passer de l’étape 2 à l’étape 3 consiste á réviser les mains jouées, celles avec lesquelles on gagne et celles avec lesquelles on perd, afin de définir une gamme de mains à jouer de manière cohérente, en fonction de certains facteurs comme le type de jeu de poker ou la position autour de la table.

Dans un premier temps, la mise en œuvre de cette ‘bonne pratique’ n’est pas automatique et nécessite un minimum de réflexion afin de se souvenir si les deux cartes en main sont ou non profitables. Il faut également continuer á effectuer des ‘reviews’ de mains jouées afin de voir si le jeu et les résultats se sont améliorés.

En tant que gestionnaire de projet ou consultant Qualité, fournir du feedback est important. Analysez le code source régulièrement, générez des rapports avec la liste des nouveaux défauts à corriger. Bientôt, vous devriez voir quelques améliorations. Il est important de définir des objectifs réalisables qui sauront maintenir la motivation et éviter l’échec.

Cependant, les étapes 2 et 3 sont celles où l’on passe le plus de temps, nécessaire pour passer d’un esprit de débutant á l’apprentissage, la pratique et l’analyse des résultats.

Étape 4 – Inconscience / connaissance

La compétence acquise est devenue une seconde nature et vous êtes capable de l’utiliser automatiquement, sans même y penser.

Un développeur a maîtrisé complètement toutes les bonnes pratiques de programmation qui étaient sur la liste. Le joueur de poker sait en un clin d’oeil comment jouer ses cartes. Vous êtes maintenant capable de faire cuire dans votre four tout type de viande de toute taille et de tout poids, qui sera parfaitement à point ou au goût de vos invités.

Vous réalisez cette tâche sans effort, et même si vous êtes toujours aux prises avec certains autres aspects de votre jeu, de vos efforts culinaires ou de votre projet, vous savez que vous pouvez apprendre à les résoudre.

Il est important de consolider ce qui a été réalisé en présentant les résultats à votre équipe et aux utilisateurs et stakeholders : de meilleures compétences doivent se traduire par une meilleure qualité de code, moins de défauts, un meilleur time-to-market.

Savoir comment apprendre améliore votre capacité d’apprentissage et vos compétences de manière plus efficace.

Pour un gestionnaire de projet ou un consultant Qualité, les analyses de code vous permettent d’identifier ce que vous ignorez et où placer votre effort. Des objectifs réalisables, une écoute active, un processus bien défini nous aideront à aller de l’avant jusqu’à ce que tout ‘clique’ en place.

Une fois encore, le plus important à mon avis est que l’amélioration des compétences doit se traduire par une meilleure qualité applicative et une meilleure image de IT. Les améliorations doivent être reconnues.

Ce n’est pas seulement une question de récompense. Cela pourrait vous éviter de perdre le contrôle de votre projet et de voir vos applications externalisées.

Ce article est également disponible en Leer este articulo en castellano et Read that post in english.

Cette entrée a été publiée dans Qualité des applications le par .

A propos Jean-Pierre FAYOLLE

Jean-Pierre Fayolle is the founder, manager and lead author of Qualilogy, blog about Application Quality, Cloud and Virtualization, and Solopreneurs. With a long experience as Technical Manager of different software vendors or services companies, Jean-Pierre is a recognized expert in implementating software platforms and architectures for big international companies.