28 points par spilist2 2024-07-22 | 1 commentaires | Partager sur WhatsApp

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

 
inthelife 2024-07-22

Traduction partielle du CDM (DeepL) :

  • Indices : qu’avez-vous vu, entendu, senti… ?
  • Connaissances, sources : quelles informations avez-vous utilisées pour prendre cette décision, et comment les avez-vous obtenues ?
  • Similarité : une expérience antérieure vous est-elle revenue à l’esprit ?
  • Objectif : quel était l’objectif concret à ce moment-là ?
  • Options : quelles autres lignes de conduite avez-vous envisagées ou auriez-vous pu choisir ?
  • Justification : comment cette option a-t-elle été choisie, et pourquoi les autres ont-elles été écartées ? Quelles règles avez-vous suivies ?
  • Expérience : quelle formation ou quelle expérience concrète a été nécessaire ou utile pour prendre cette décision ?
  • Aide : si ce n’était pas la meilleure décision, quelle formation, quelles connaissances ou quelles informations auraient été utiles ?
  • Outils : y avait-il des outils particuliers qui vous ont aidé à prendre cette décision ?
  • Pression temporelle : à quel point étiez-vous sous pression en termes de temps pour prendre cette décision ?
  • Évaluation de la situation : si, à ce moment-là, on vous avait demandé d’expliquer la situation à une personne plus expérimentée que vous (par exemple en termes d’expertise), comment l’auriez-vous résumée ?
  • Hypothèse : si les principales caractéristiques de la situation avaient été différentes, en quoi votre décision aurait-elle changé ?