コンテンツにスキップ

伝わるコードレビュー - 読書記録

📁 docs/reading-notes/20260408_025719_伝わるコードレビュー.md

項目 内容
書籍名 伝わるコードレビュー
ISBN 978-4-798-8600-9
記録日 2026-04-08

読んだ目的

コードレビューで「意図が伝わらない」「説明ができない」「伝え方がまずくて誤解される」という課題を解決するため。以下を明確にしたい:

  1. コードレビューの正しい心構え・スタンスのベース確認
  2. 自分自身の今後の改善方針
  3. チームの改善活動への展開
  4. コードレビュー方針・ルールのたたき台作成

書籍から得られた最も重要な学び

コードレビューは「チェック・○×付け」ではなく、二人三脚で良いソフトウェアを作るためのコミュニケーションである。心理的安全性を土台に、意図を正確に伝え合うことで品質とチームの成長を両立させる。

学びのポイント(3点)

  1. コードレビューの目的は「品質向上」だけでなく「知識共有」や「チームの成長」にもある
  2. レビューで使う言葉の選び方・フィードバックの伝え方次第で、相手の受け止め方が大きく変わる
  3. 「これはこうした方がいい」と言うよりも、「こうすればこうなる」と説明することで相手に納得感を与えられる

1. スタンス・心構え

レビューの本質

  • レビューは「チェックしてあげる」ではなく、寄り添いながら共に良いものを作る行為
  • レビュアー・レビューイ双方が「二人三脚でソフトウェアを改善する」姿勢で臨む

心理的安全性の重要性

  • レビュアーとレビューイは別人間であり、意図が完全に伝わるとは限らない
  • 「わからない」と素直に言える心理的安全性が開発の成否を左右する

やってはいけないアンチパターン

パターン 具体例 問題点
悪意の疑い 純粋な質問を「批判された」と受け止める 不必要な対立・誤解が生まれる
言いがかり 「ちゃんとチェックしないからだ」と責める 心理的安全性を壊す
過度な防衛 「大体大丈夫だと思います、でも自信はないです…」と曖昧なコメント 品質判断を放棄している
思考停止の修正 理由もわからず「反論が面倒だから言われた通りに直す」 理解なき修正で品質が下がる
虚勢 「自分のコードと大差ないので修正しない」と全拒否 改善機会を失う
優位性の誇示 「ちゃんと考えれば気付けたはず。なぜ気付けないのか」と責める レビューイの委縮・成長阻害

2. 実践編:コメントの書き方

質問の意図と期待する回答をセットで伝える

  • 「なぜその意図でその質問をしたのか」を必ず添える
  • 「具体的に何を答えてほしいのか」を明示する
  • 曖昧な質問は相手の考える負荷を過剰にかけ、○×チェックのような印象を与える

悪い例:

このケースはどういう経路を想定していますか?

良い例:

この処理は〇〇のケースも通る可能性があると思ったのですが、
その場合の動作を確認したく質問しました。
想定ケースを教えていただけますか?

アイメッセージで自分の立場を明示する

  • 「今の実装でも問題ないと思いますが、私ならこうするかな」という形で意見の強さを示す
  • 否定ではなく「さらに深く知りたい」「もっと良くしたい」という姿勢を添える

深読みを防ぐコメント

  • 何も添えない質問は「批判されている」と誤読されやすい
  • 「否定しているわけではなく、実装について詳しく知りたい」のひと言を添える
  • 誤解を防ぐことで、不要な修正・余計な手間を防げる

3. レビューコメントをうのみにしない

プルリクの最終責任はレビューイ自身

  • ベテランのコメントであっても、まず自分で理解してから進める
  • 「〇〇さんが言ったから大丈夫」は責任の放棄
  • 理解できなければ正直に「なぜそうすべきなのか教えてほしい」と質問する

うのみにするデメリット

デメリット 内容
品質低下 理解なき修正は誤った変更を招く
責任意識の欠如 「誰かが確認してくれた」という他人任せな姿勢になる
チームの成長阻害 特定の人がいないと進められない属人化状態になる

4. 質問コメントへの誠実な対応(レビューイ側)

  • 実装意図を聞かれているのに、黙って修正だけ返すのはNG
  • コメントに対して、まず「どういう意図で聞かれているか」を理解する
  • 批判されていると勘違いせず、質問には質問として誠実に回答する

悪い例:

レビュアー: 「ここはなぜこういう処理にしたのですか?」
レビューイ: 「こういう書き方に直しました」(意図を答えていない)

良い例:

レビュアー: 「ここはなぜこういう処理にしたのですか?」
レビューイ: 「〇〇の理由からこの実装を選びました。
           ご指摘の点で懸念があれば教えてください」


ネクストアクション

# アクション 具体的に
1 コメントに意図と期待回答を添える習慣化 レビューコメント投稿前にセルフチェックする
2 アイメッセージを使う 「私はこう思う」「〇〇のケースが気になりました」など
3 説明型フィードバックの実践 「こうした方がいい」ではなく「こうすればこうなる」の形で伝える
4 質問コメントへの誠実な回答 修正だけでなく、意図を言語化して返す
5 レビューコメントを理解してから進める 不明点は「なぜそうすべきか」を正直に聞く
6 チームのコードレビュー方針たたき台の共有 本書の内容を踏まえてガイドラインを整理・チームで議論する

伝え方・構造化のコツ(自己メモ)

この書籍の内容を人に伝える・アウトプットする際の改善ポイント:

  • 各ポイントに具体例を添える — 「こうすればこうなる」という説明に実際のコードや状況例を入れると説得力が増す
  • 結論ファーストで話す — 各セクションの冒頭で最も伝えたい要点を先に述べる
  • 数字で構造を示す — 「以下の3点です」と先に提示してから詳細を話すと聞き手が整理しやすい

コードレビュー方針たたき台(ドラフト)

チームで共有するスタンス・ルールの素案。別途議論・精査が必要。

基本スタンス

  • コードレビューは「チェック」ではなく「共に良いソフトウェアを作るコミュニケーション」
  • レビュアー・レビューイともに、二人三脚で品質向上を目指す

コメントのルール

  1. 質問には意図を添える — 「なぜこれを聞くのか」「何を答えてほしいのか」をセットで書く
  2. アイメッセージを使う — 断定より「私はこう思う」「こうするとこうなる」の形で伝える
  3. 否定でないことを明示する — 改善提案は「批判ではなく提案」であることを添える
  4. 責任を持って議論する — 理解できないコメントは流さず、正直に質問して理解してから進める

やらないこと

  • 相手のミスを責めたり、言いがかりをつける
  • 曖昧なまま修正を受け入れる(理解なき修正)
  • 質問に答えずに修正だけ返す