28 ポイント 投稿者 spilist2 2024-07-22 | 1件のコメント | WhatsAppで共有

最近のペアデバッグの経験

  • 「一覧ページで複数のアイテムに対して特定のアクションを行った結果が、個別アイテムページでは反映されないことがある問題」。再現経路は把握できていなかった
  • 聞いた瞬間に「先に個別アイテムページへ行った状態で一覧ページに戻り、そのあと当該アクションを実行」したときの確認をしてみようと提案。実際、それが再現経路だった

ペアデバッグのセッションは5分もかからずに終わったが、考え込むことがあった

  • 私はどうしてこれに気づけたのか、そしてなぜこの同僚は気づけなかったのだろうか?
  • どうすればこの人の能力を効果的にさらに引き上げられるだろうか?

シニアとしてコードレビューやペア作業をしていると、こういうことは意外とよく起こる

  • シニアが何か引っかかる部分を素早く見抜き、それらしい改善提案をする。
  • ジュニアは「なるほど」と受け入れる。
  • 次に、完全に同じではないが似た問題がまた起こる。
  • シニアはまた見抜き、また改善提案をする。
  • ジュニアは少しずつ理解してミスは減るが、私が望むレベルまで素早く伸びてはこない。

これは、シニアのソリューションだけが伝わり、その内側にある認知プロセス、つまり「その判断や意思決定をどうやって行えたのか」が伝わっていないため

Gary Kleinが開発した CDM は、このような認知プロセスを比較的すばやく、セルフでも分析できる良い方法

  • 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?

結論

  • たいてい非同期で行われる GitHub PR レビューでは、レビュアーの暗黙知ははるかに表れにくい
  • このとき意識的に CDM の質問をセルフで投げかけながら、「自分がこのコメントをどうやって思いつけたのか」まで一緒に入れられれば、レビュアーと PR 作成者の両方の能力はもっとずっと速く伸びると思う
  • もちろん開発以外の領域でも、認知的な作業が必要なあらゆる領域で CDM は非常にうまく活用できる。自分が教える側でも、教わる側でも。

1件のコメント

 
inthelife 2024-07-22

CDMの一部翻訳(DeepL):

  • 手がかり:何を見て、聞いて、嗅ぎましたか……?
  • 知識、情報源:この判断を下すのにどのような情報を使い、それをどのように得ましたか?
  • 類似性:以前の経験を思い出しましたか?
  • 目標:その時点での具体的な目標は何でしたか?
  • 選択肢:検討した、または選択可能だった他の行動方針はありましたか?
  • 根拠:この選択肢はどのように選ばれ、他の選択肢はどのように退けられましたか? どのようなルールに従いましたか?
  • 経験:この判断を下すのに必要だった、または役立った具体的な訓練や経験は何ですか?
  • 支援:もし最善の判断ではなかったとしたら、どのような訓練、知識、または情報が役立ったでしょうか?
  • ツール:この判断を下す際に、特定の判断の助けとなったツールはありましたか?
  • 時間的圧力:この判断を下すうえで、どの程度の時間的なプレッシャーがありましたか?
  • 状況評価:この時点で、自分より上位者(例:専門性の面で)に状況を説明するよう求められたと仮定した場合、状況をどのように要約しますか?
  • 仮説:状況の主要な特徴が異なっていた場合、あなたの判断にはどのような違いがあったでしょうか?