Comment ai-je pu porter ce jugement ?
(stdy.blog)Une récente expérience de pair debugging
- « Un problème où le résultat d’une action spécifique effectuée sur plusieurs éléments depuis la page de liste n’est parfois pas reflété sur la page de chaque élément. » Impossible d’identifier le chemin de reproduction
- Dès que je l’ai entendu, j’ai proposé de vérifier le cas où l’on va d’abord sur la page d’un élément individuel, puis revient à la page de liste avant d’effectuer cette action. C’était bien le bon chemin de reproduction
La session de pair debugging s’est terminée en moins de 5 minutes, mais cela m’a fait réfléchir
- Comment ai-je pu remarquer cela, et pourquoi mon collègue n’y est-il pas parvenu ?
- Comment puis-je faire progresser plus efficacement les compétences de cette personne ?
En tant que senior, ce genre de situation arrive assez souvent, de façon subtile, lors des code reviews ou du travail en binôme
- Le senior repère rapidement un point qui semble suspect et propose une amélioration plausible.
- Le junior l’accueille avec admiration.
- La fois suivante, un problème similaire — sans être exactement le même — réapparaît.
- Le senior le repère à nouveau et fait à nouveau une proposition d’amélioration.
- Le junior comprend un peu mieux, fait moins d’erreurs, mais ne progresse pas aussi vite que je le souhaiterais.
Cela vient du fait que seule la solution du senior est transmise, alors que le processus cognitif qu’elle contient — autrement dit « comment il a pu porter ce jugement et prendre cette décision » — ne l’est pas
Le CDM, développé par Gary Klein, est une bonne méthode pour analyser ce type de processus cognitif relativement rapidement, y compris seul
- Cues : What were you seeing, hearing, smelling ...?
- Knowledge, Source : What information did you use in making this decision, and how was it obtained?
- Analogues : Were you reminded of any previous experience?
- Goals : What were your specific goals at this time?
- Options : What other courses of action were considered by or available to you?
- Basis : How was this option selected/other options rejected? What rule was being followed?
- Experience : What specific training or experience was necessary or helpful in making this decision?
- Aiding : If the decision was not the best, what training, knowledge, or information could have helped?
- Tools : When making this decision, were there any tools that helped that specific decision?
- Time Pressure : How much time pressure was involved in making this decision?
- Situation Assessment : Imagine that you were asked to describe the situation to someone superior to(in terms of expertise, for example) you at this point, how would you summarize the situation?
- Hypothesis : If a key feature of the situation had been different, what difference would it have made in your decision?
Conclusion
- Dans les reviews de PR GitHub, généralement menées de façon asynchrone, le savoir tacite du reviewer apparaît beaucoup moins
- Dans ce contexte, si l’on se pose consciemment à soi-même les questions du CDM et que l’on ajoute aussi « comment j’ai pu en arriver à ce commentaire », alors les compétences du reviewer comme de l’auteur de la PR progresseront bien plus vite
- Bien sûr, le CDM peut aussi être extrêmement utile en dehors du développement, dans tout domaine nécessitant un travail cognitif, que ce soit lorsque j’enseigne ou lorsque je suis formé.
1 commentaires
Traduction partielle du CDM (DeepL) :