← なぜAI駆動開発なのか 実践コード読解 →

コードを理解する力 —— AI時代の品質担保プロセス

「書く」はAIに任せていい。でも「理解して品質を担保する」は人間の責任。 コード行を自分で追わなくても、AIに説明させて設計意図と品質を把握すれば、 最終責任は人間が持てる。——その根拠と具体的なやり方。


1. Anthropicの研究が証明した事実

2026年1月、Anthropicが52人のジュニアエンジニアで実験を行いました。

実験内容

PythonAI・データ分析の分野で最も使われるプログラミング言語(読み: パイソン)。AI関連の道具が最も豊富で、文法が読みやすいのが特徴の新しいライブラリ(Trio)を学んでもらい、AI補助ありグループと手書きグループで比較。タスク後に理解度テスト(コード読解・デバッグ・概念理解)を実施。

結果

AIの使い方 理解度テストのスコア
AIに完全に丸投げ(コード生成のみ) 24〜39%
AIに概念的質問 / 説明を求める 65〜86%
手書き(AI未使用) 67%

完全にAIに丸投げした人は、何も理解していなかった。

Anthropic研究チームの結論

「AIによる生産性向上は、能力への近道ではない

「特に安全上重要な領域では、AI生成コードを検証するスキルが求められる。しかしAIへの依存がそのスキル形成を阻害する可能性がある」

出典: Anthropic Research, "How AI assistance impacts the formation of coding skills" (2026年1月)

この研究が示す本当のメッセージ

注目すべきは「AIに説明を求めた人がスコア65〜86%に達している」点です。つまり、コードを自分で一行ずつ追わなくても、AIに「これは何をしている?」「なぜこの実装?」と説明させることで、手書きの人(67%)と同等以上の理解度に達する。これが本章の核心です。


2. 「書けない」と「理解しない」は別物

書く(Writing) 理解して品質を担保する(Understanding)
AIに任せる? ✅ 任せるべき ❌ 任せきれない
コード行を自分で追う必要? 必ずしも不要(AIに説明させればよい)
必要なのは (AIがやる) AIに的確に問い、回答を品質判定する力
比喩 大工が壁を建てる 建築家が図面の意図を確かめ、検査する

「コードの記述をAIに任せる」のは2026年の合理判断です。しかし「作ったものが正しいかを理解しないまま放置する」のは弱点です。図面の意図を確かめず検査印を押す建築家と同じ。

重要なのは、コード行を自分で読むことではなく、AIに説明させて「何をしているか・なぜそうしたか・品質は十分か」を把握し、最終的に自分で品質判定を下すことです。


3. 「理解しない(AI丸投げ)」が致命的な3つの理由

① チーム開発では「理解して説明する」ことが仕事の半分

場面 必要な能力
PRレビュー 「この変更は何をしているか」を判断する
インシデント対応 エラーの原因をAIに解かせ、結果を判断する
設計議論 「この実装のトレードオフは?」に答える
ペアプロ・モブプロ その場でAIに説明させ、それを相手に翻訳する

会議中に「ちょっとAIに聞いてきます」と言って終わるわけにはいきません。しかし「AIに説明させて、その内容を自分の言葉で伝える」ことは、AI丸投げの人にはできず、説明を求めた人(理解度65〜86%)にはできることです。

② 「品質判定」が売りなのに、理解しないと判定できない

私のスタンスは「要件定義「何を・何のために作るか」を言葉に整理して関係者で合わせる最初の作業。ここが曖昧だと手戻りが最大になる・品質判定・運用設計を指揮する」です。

品質判定の対象はコードの挙動ですが、それは「コード行を自力で読む」ことと同義ではありません。AIにコードを説明させ、テスト結果と動作確認で裏付け、設計意図と照合して判定する——このプロセスが私の品質担保の方法です。理解(=AIに説明させて把握すること)を抜きに品質判定はできません。

③ AIが書いたコードの「最終責任」は人間

Anthropicの研究が指摘:

「AI生成コードをデプロイ作ったプログラムを、実際に動くサーバーや公開環境へ設置して動かし始めること前に理解し検証する能力。このスキルは、AIがコードを書く時代にこそ最も重要になる」


4. AIに説明させて理解する3レベル

完全なプログラマーになる必要はありません。以下の3レベルができれば実務で困らないラインです。

Level 1: エラーの原因をAIに解読させる(最重要・1〜2週間)

Traceback (most recent call last):
  File "app.py", line 42, in process_order
    total = price * quantity
TypeError: unsupported operand type(s) for *: 'str' and 'int'

AIへの問い方:

AIの答えを品質判定する:

→ AIに解かせた原因が正しいかを、実際の入力値で確認できれば、バグ報告の精度が劇的に上がります。

Level 2: 変更内容(diff)をAIに説明させる(2〜4週間)

- def calculate_total(price):
+ def calculate_total(price, tax_rate=0.1):
+     return price * (1 + tax_rate)
-     return price

AIへの問い方:

AIの答えを品質判定する:

→ AIに説明させた変更意図と影響範囲を判断できれば、コードレビュー書かれたコードを、書いた本人以外の視点で読んで問題を指摘する作業。バグ・読みにくさ・危険な書き方を第三者が見つけるのに有効に参加できます。

Level 3: 全体の流れをAIに解説させる(1〜2ヶ月)

@app.route("/api/orders", methods=["POST"])
def create_order():
    data = request.json
    order = Order(**data)
    db.session.add(order)
    db.session.commit()
    return jsonify(order.to_dict()), 201

AIへの問い方:

→ AIに解説させた全体像を把握し、設計上の判断(ここは認証が必要等)ができれば、設計議論に参加できます。

必要ないもの


5. 正しい使い方(Anthropic推奨パターン)

Anthropicの研究が示したスコア65〜86%のパターンをそのまま実践します。

❌ やらないこと(スコア24〜39%)

✅ やること(スコア65〜86%)

AIに「説明させる」ことで、自分の理解が深まる。 これがAnthropic推奨の正しい使い方であり、コード行を直接読まない私が品質を担保する核心の方法です。

1日15分の練習メニュー

曜日 やること 身につく力
自分のリポジトリのPR diffをAIに説明させる 変更内容の把握
pytestの失敗出力をAIに解読させる エラー原因の把握
自分のプロジェクトの1ファイルの流れをAIに解説させる 全体把握
エラーメッセージを5個AIに読ませて原因を当てさせる トレース力
新しいライブラリのサンプルコードをAIに解説させる キャッチアップ

6. まとめ

┌──────────────────────────────────────────────────────────┐
│                                                          │
│   「書けない」→ 選択。AIに任せればいい。OK。              │
│   「理解しない」→ 弱点。AI時代でも人間の責任。要改善。     │
│                                                          │
│   コード行を自力で読まなくても                            │
│   AIに説明させることで理解度65〜86%に届く(Anthropic)    │
│                                                          │
│   人間に残る核心は                                        │
│   「AIに的確に問い、回答を品質判定する力」                │
│                                                          │
│   → 今日から自分のコードをAIに説明させながら              │
│     理解と品質判定の精度を磨く                            │
│                                                          │
└──────────────────────────────────────────────────────────┘

面接で聞かれたら

Q: 「コードは読めるのですか?」

実装はAIに任せていますが、作ったものが正しいかを理解し、品質を担保するプロセスには全力を注いでいます。具体的には、AIにコードを説明させて設計意図と変更内容を把握し、8,000件以上のテストと動作確認で裏付けを取り、セキュリティ要件を満たすかを判定しています。

Anthropicの2026年の研究で、AIに丸投げする人は理解度が24〜39%に落ちる一方、AIに「説明を求める」使い方をすれば65〜86%の理解度を維持できることが分かっています。私は後者の使い方で、コードの挙動を理解し、品質の最終責任を自分で持つことを徹底しています。


用語の平易な解説(専門用語を読み解く)

🐛 Traceback(トレースバック)・スタックトレース

一言で: 「エラーが起きた時の、通過経路の記録」。

🔢 TypeError(タイプエラー)・型(かた)

一言で: 「データの種類(型)が合わず起きるエラー」。

🔀 diff(ディフ)

一言で: 「2つのバージョンの差分(変更内容)」。

👁️ PRレビュー・PR(プルリクエスト)

一言で: 「提案されたコード変更を、他の人が確認する作業」。

👥 ペアプロ・モブプロ

一言で: 「2人〜複数人で1つのコードを見ながら進める開発スタイル」。

📋 ホワイトボードコーディング

一言で: 「面接等で、ホワイトボードに手書きでコードを書かせる試験」。