DECISION GUIDE / AI CODING
AIコーディングで何を理解すべきか。
成長と速度を両立する進め方
AIが書いた差分を、どこまで読めば出してよいのでしょうか。答えは、生成された行数ではなく、その変更に対して自分が負う責任の範囲で決められます。
目的、境界、失敗条件を自分の言葉にする。
AIの説明ではなく、別の証拠で確かめる。
出した後の観測、復旧、学びまで設計する。
THE REALITY OF SPEED
速く作れたのに、分かった気がしない
AIコーディングの違和感は、コードが書けないことではありません。むしろ、動くものが早く出てくるからこそ、理解の空白が見えにくくなることです。
差分は小さく、テストも通っています。レビューの画面を閉じようとしたところで、手が止まる。この変更がどの入力で壊れるか、なぜこの設計にしたか、明日の障害でどこを戻せばよいかを聞かれたら、すぐ答えられるでしょうか。
FACT / DORA 2025
AIを使う人が増えても、成果はツールだけでは決まらない。DORAの2025年調査では、回答者の90%が仕事でAIを使い、80%以上が生産性の向上を感じていました。一方で、AIが生成したコードをあまり信頼していない人も約30%いました。調査の中心的な示唆は、AIがチームの状態を直すのではなく、既にある強みや弱みを増幅するというものです。
FACT / METR
速さの体感と、実際にかかった時間は一致しないことがある。METRの2025年の実験では、経験のあるオープンソース開発者16人が246件の課題に取り組み、AIを使える条件で完了時間が19%長くなりました。2026年の更新では新しいツールによる高速化の可能性も示されましたが、AIなしの課題を避ける参加者が出たため、後の実験は信頼性に限界があると説明されています。
FACT / ANTHROPIC
生成した後に理解する人ほど、学習の手がかりを得やすい。Anthropicの小規模な無作為化実験では、Python経験のあるソフトウェアエンジニアが未知のライブラリを学びました。AI利用群は手書き群より理解度クイズの平均点が低く、特にデバッグで差が出ました。ただし成績の高い人は、生成後に説明を求め、概念を質問し、エラーを自分でも解いていました。
INTERPRETATION 速さを測る単位を「何行出たか」だけにすると、理解と検証に使った時間が消えます。AIを使うかどうかではなく、生成、理解、検証、復旧を合わせた一つの仕事として測る必要があります。
THE HUMAN BOUNDARY
AIに任せる仕事と、人が残す仕事
AIに任せる範囲は、実装技術の難しさだけで決めません。変更の意味を誰が決め、失敗したときに誰が説明し、どの証拠で出荷を承認するかで決まります。
HUMAN OWNS
人が手放さないもの
- ユーザーや顧客にとっての目的
- 非機能要件と、守るべき不変条件
- データ、権限、コスト、運用への影響
- リリース、監視、ロールバックの判断
- 曖昧な要求に対する質問と合意
AI CAN ASSIST
AIに任せやすいもの
- 既存コードの構造やデータフローの整理
- 小さな定型実装と、複数案の比較
- テストケースの候補と境界値の洗い出し
- 差分の自己レビューと、説明のたたき台
- ドキュメント、移行手順、引き継ぎ文書の下書き
GitHubはAI生成コードについて、機能確認、テスト、静的解析、依存関係、ハルシネーションしたAPI、削除されたテストまで人が確認するよう案内しています。Claude Codeの公式ドキュメントも、計画モードで先に読み、変更を小さく分け、承認前にコマンドと差分を確認する流れを示しています。
RECOMMENDATION AIに「実装を任せる」ことと、「判断を任せる」ことを分けてください。人が目的と制約を決め、AIが候補を作り、人が証拠を見て承認する。この往復を崩さないことが、速度と責任を同時に守る境界になります。
RISK-BASED UNDERSTANDING
理解の深さをリスクで決める
すべてのコードを同じ深さで読む必要はありません。理解のコストを下げるには、変更が壊れたときの影響、戻しやすさ、見つけやすさを見積もります。
| 変更の種類 | 最低限、説明できること | 検証と出荷の基準 |
|---|---|---|
| 局所的で戻しやすい 表示、純粋変換、文言 | 入力と出力、条件分岐、既存の規約 | 代表例と境界値。差分を目視し、小さなテストを通す。 |
| 状態を持つ DB、キャッシュ、非同期処理、業務ルール | 不変条件、失敗時の状態、再実行時の挙動、データフロー | 成功と失敗のテスト。ログ、メトリクス、移行手順、ロールバックを確認する。 |
| 影響が大きい 認証、決済、個人情報、権限、インフラ、本番操作 | 脅威、権限境界、監査要件、停止や漏えい時の影響 | 人によるレビューを必須にする。段階リリース、監視、承認、復旧手順が揃うまで出さない。 |
この表の狙いは、低リスクの作業まで重い審査にすることではありません。逆に、高リスクの変更を「テストが通ったから」で通過させないための線引きです。特に権限、外部送信、破壊的操作、顧客データに触れる変更は、AIの説明を証拠として扱わないでください。
この変更が今夜壊れたとき、誰が、何を見て、どの手順で、どこまで戻せますか。
THE FRONTIER SHIFT
コードを読まなくても、理解は要るのか
ここで、少し前提が変わり始めています。フロンティアモデルは、関数を一つ生成する道具から、リポジトリを調べ、複数のツールを使い、長い作業を続けるエージェントへ近づいています。
Anthropicは、Claude Fable 5をMythosクラスのモデルとして発表し、以前のモデルより長く自律的に動けること、ソフトウェア開発で大規模な移行を扱ったことを説明しています。OpenAIも、GPT-5.6について、ツールを組み合わせるプログラムや複数エージェントを使い、途中の結果を処理しながら作業を進められると発表しています。これらは各社自身の発表と評価なので、そのまま現場の成功率とはみなしません。それでも、実装の細部を人が一行ずつ書く比率が下がる方向は見えます。
FACT / FRONTIER MODELS
AIが「どう書くか」を長く引き受ける。Anthropicの発表では、Fable 5とMythos 5が長時間の自律作業とソフトウェア開発での大規模な作業を扱う例が示されています。GPT-5.6の発表でも、ツール実行、途中結果の処理、複数エージェントが説明されています。
FACT / REAL USAGE
人が決め、AIが実行する分担は残っている。約40万セッションを分析したAnthropicの利用実態分析では、典型的なセッションで人が計画を決め、Claudeが実行方法を担うと報告されています。成果は、モデルの種類だけでなく、取り組む問題を人がどれだけ理解しているかと関係していました。
INTERPRETATION 「コードを見なくてもよい」は、二つの意味に分ける必要があります。構文や定型処理を毎回読む量は減ってよい。しかし、何を作るのか、どこが境界か、壊れたらどう見つけるかまで不要になるわけではありません。理解の対象が、コードの一行一行から、システムの契約と運用へ移るのです。
定型的な変換、画面の骨格、既知のライブラリ接続は、AIに候補を作らせて実行結果で確認しやすい。
目的、不変条件、データの流れ、権限、失敗条件、観測、復旧を自分の言葉と証拠で持つ。
「自分が説明できるまで問う」という考え方は有効です。ただし、AIに説明文を作らせて納得するだけでは足りません。説明を聞いたあとに、入力を変えたテストを走らせ、ログを見て、境界条件を一つ壊し、戻せることを確かめる。説明は理解の仮説であり、検証結果がその仮説を支える証拠です。
誰の何を変えるか。
入力、出力、不変条件。
権限、データ、外部依存。
テスト、ログ、実測。
異常時の戻し方。
RECOMMENDATION これからの理解は、すべてのコードを暗記することではありません。コードを読まなくても、問題、契約、境界、証拠、復旧を説明できる状態を作ることです。ただし高リスクの変更では、必要な実装箇所を実際に読みます。読まないこと自体を目標にしないでください。
THE WORK LOOP
速度を落とさず、学びを残す実装ループ
学習を守るためにAIを使わない時間を増やす方法もあります。しかし、毎回手書きに戻ると、速度を失ったうえで学びも断片的になりがちです。先に判断を置き、後から説明と検証を必ず通すループのほうが、現場では続けやすいでしょう。
- 成功条件と非目的を書く。
「プロフィール画面を直す」では足りません。誰が、何をすると、どう見えれば成功か。今回触らない範囲はどこか。失敗時はどうなるかを先に決めます。
- AIにはまず調査と計画をさせる。
いきなり編集を許可せず、関連ファイル、データの流れ、既存のテスト、懸念点を挙げさせます。計画が自分の理解と違ったら、実装前に直せます。
- 人が設計の選択を一つ決める。
状態をどこに置くか、エラーをどこで扱うか、互換性をどう守るかを人が選びます。AIに案を出させても、採用理由は自分の言葉で残します。
- 一時間で終わる大きさに切る。
OpenAIのCodex活用ガイドも、ひとつのタスクを一時間程度、数百行程度の範囲に絞ると扱いやすいと説明しています。大きな機能は、観測できる小さな縦切りに分けます。
- テストの前に差分を見る。
テストが通ることは、要求を満たすことと同じではありません。不要な変更、例外の握りつぶし、権限の広がり、依存関係の追加、テストの削除を先に見ます。
- AIに説明させたあと、自分で問い直す。
説明は理解の入口です。「この処理を入力から順に説明して」「失敗する条件を三つ挙げて」「なぜ別案を採用しなかったか」と尋ね、最後はコードと実行結果で確かめます。
- 独立した証拠で検証する。
ユニットテスト、型検査、静的解析、ブラウザ確認、ログの確認を変更に合わせて組み合わせます。同じAIに書かせて、同じAIに「問題なし」と言わせるだけでは、検証の独立性が弱くなります。
- 出した後の観測と学習を残す。
リリース後に何を見るか、異常ならどこまで戻すかを決めます。最後に、理解できたこと、まだ曖昧なこと、次に手書きで練習する小さな課題を記録します。
PROMPT PATTERN
まず実装せず、次の順で調査してください。
1. 関係するファイルとデータの流れ
2. 既存の制約と、壊してはいけない挙動
3. 成功条件と失敗条件
4. 小さく分けた実装計画
5. 追加すべきテストと、残る不確実性
この段階ではファイルを変更しないでください。
このループは、AIを使う量を減らす話ではありません。理解と検証を、気合いではなく工程として置く話です。
CONTEXT CHANGES THE RULES
SES、受託、自社、個人、FDEで変わる任せ方
同じAIコーディングでも、扱うデータ、承認者、納品物、障害の影響が違えば、許される自律性も変わります。自分の手元で動くかだけでなく、誰の環境で、誰の期待に対して出すのかを起点にします。
| 立場 | 先に確認すること | AIの使いどころ | 人が残す証拠 |
|---|---|---|---|
| SES | 顧客の規約、機密情報の扱い、利用可能なツールと承認者 | 公開コードやマスキング済みの小さな調査、テスト案、手順書の下書き | 何を入力し、何を確認し、誰が承認したか。顧客環境の外へ情報を出していないこと。 |
| 受託開発 | 仕様書にない業務前提、受入条件、変更要求の扱い、納品範囲 | 仕様からのテスト観点、既存実装のマッピング、定型コードの作成 | 受入条件と実装の対応表。未確定の前提、追加見積もりが必要な変更、検証結果。 |
| 自社サービス | ユーザー価値、指標、運用コスト、継続的な変更のしやすさ | 仮説検証の試作、移行スクリプトの案、観測項目、リファクタリング | なぜ出したかを示す指標、段階リリースの条件、監視とロールバックの手順。 |
| 個人開発 | 試作品と本番の境界、バックアップ、秘密情報、課金と外部サービスの上限 | 小さな機能の試作、学習用の比較実装、ドキュメント整理 | 本番に入れる前のチェックリスト。費用、権限、データ復旧の方法。 |
| FDE | 顧客環境のデータと権限、導入先ごとの違い、引き継ぎ後の運用者 | 顧客固有の連携、設定、データ変換の検証、現場での問題切り分け | 顧客ごとの変更範囲、再現手順、設定の差分、顧客が読める運用手順。 |
FDEは、顧客の現場に入り、製品を実際の環境へ適応させるForward Deployed Engineerを指します。開発と導入の境界に立つため、動けば終わりにはなりません。顧客のデータを扱う理由、設定を戻す方法、担当者へ渡す手順までが成果物です。
RECOMMENDATION 案件の種類が変わったら、プロンプトだけでなく権限、入力データ、レビュー者、出荷条件を変えてください。AIの性能より先に、周辺の運用を変える必要があります。
LEARNING EVIDENCE
成果物を自分の学びに変える記録
AIを使った実装が自分の経験にならないのは、生成物だけが残り、判断の過程が消えるからです。長い日報は必要ありません。次の4つを、変更単位で短く残します。
変更マップ
どのファイルが、どのデータの流れに関わるか。変更前の挙動は何だったか。
判断ログ
採用した案と、採用しなかった案。捨てた案の理由を一文で残す。
検証の証拠
実行したテスト、手動確認、ログ、画面、未検証の条件を記録する。
復旧と次の課題
戻し方と監視項目。次はAIに説明させず、自分で実装してみる小さな課題。
ONE-MINUTE RECORD
- 目的
- 誰の、どんな困りごとを変えたか。
- 境界
- 今回、触れなかった範囲はどこか。
- 不変条件
- 絶対に変わってはいけない挙動は何か。
- 証拠
- 何を実行し、何をまだ確認していないか。
- 復旧
- 異常時に、誰が、どこまで戻せるか。
- 学び
- 次に自分の手で試す一つのこと。
学びを「理解した気がする」で終わらせず、次の変更で使える形にします。たとえば、AIが書いたキャッシュ処理を読んだ翌日に、同じ要件を小さな純粋関数として手書きし、テストを先に作る。知識は、次の判断で再利用できたときに経験になります。
ACCOUNTABILITY
実装者の責任はAIへ移せない
AIが生成したコードに問題があったとしても、「AIが書いたから」は、利用者や顧客にとって説明になりません。ツールの提供元も、生成物の正確性や安全性を無条件に保証していません。GitHubは利用者にレビューと検証を求め、Claude Codeも承認した権限の範囲で動く道具であり、提案されたコードやコマンドの確認は利用者の役割だと説明しています。
責任を重く感じるほど、AIを避けたくなるかもしれません。実際には、責任を分解すると速度を保つ方法が見えてきます。
AIが下書きしてもよい。ただし、人が目的と制約を与える。
人が差分、テスト、リスク、残る不確実性を確認する。
人が段階リリース、権限、監視、ロールバックを決める。
障害時に人が状況を説明し、復旧し、次の仕組みに反映する。
INTERPRETATION 人間の役割は、すべてのコードを一文字ずつ手で書くことではありません。生成物を自分の判断として出せるところまで、文脈、証拠、復旧経路を持つことです。
START SMALL
最初の一件をどう進めるか
最初から完璧なAI開発プロセスを作る必要はありません。次に一時間で終わる、局所的で戻しやすい変更を一件だけ選んでください。
レビューを閉じる前に、もう一度だけ差分を見ます。AIが書いたかどうかではなく、この変更が何を守り、どこで壊れ、壊れたらどう戻るかを自分が話せるか。話せるなら、速く作ったことと、分かって作ったことは両立しています。話せないなら、あと数分の説明と検証が、次の成長と明日の復旧をつなぎます。