Human-AI協働パターン
概要
Human-AI協調開発には、効果的な協働パターン(繰り返し使える問題解決アプローチ)が存在します。このページでは、実践で有効なパターンと避けるべきアンチパターンを解説します。
推奨される協働パターン
パターン1: 段階的精緻化(Iterative Refinement)
基本パターン概要:大きなタスクを小さなステップに分割し、各ステップでAIと協調しながら段階的に完成させる。
ポイント:
- 一度に大量のコードを生成させない
- 各ステップで動作確認・レビューを行う
- 問題があれば早期に修正指示を出す
パターン2: コンテキスト提供型(Context Engineering)
重要パターン概要:AIに十分なコンテキスト(背景情報、制約、既存コード)を提供してから生成を依頼する。
提供すべきコンテキスト:
- プロジェクトの目的・背景
- 使用技術・フレームワーク・バージョン
- コーディング規約・命名規則
- 関連する既存コード
- 制約条件(パフォーマンス、セキュリティ等)
Karpathyの定義:
"Context Engineering: the delicate art and science of filling the context window with just the right information for the next step"
パターン3: レビュー駆動開発(Review-Driven Development)
品質パターン概要:AIが生成したコードを必ずレビューし、理解・修正してから採用する。
Simon Willisonの基準:「AIが全行を書いても、レビュー・テスト・理解すればVibe Codingではない」
パターン4: テスト先行型(Test-First with AI)
品質パターン概要:先にテストコードを(人間が)設計し、それを満たす実装をAIに生成させる。
パターン5: ペアプログラミング型(AI as Pair)
協調パターン概要:人間が主導しながら、AIをペアプログラミングのパートナーとして活用する。
活用例:
- 「このアプローチの問題点を指摘して」
- 「この設計の代替案を3つ提案して」
- 「このコードをリファクタリングする方法を説明して」
- 「このエラーの原因を分析して」
避けるべきアンチパターン
❌ アンチパターン1: 丸投げ(Blind Delegation)
問題:「○○を作って」と曖昧に依頼し、生成されたコードをそのまま使用する。
リスク:要件との乖離、セキュリティ脆弱性、保守困難なコード
対策:具体的な要件を提示し、生成コードは必ずレビューする
❌ アンチパターン2: エラー丸投げ(Error Forwarding)
問題:エラーメッセージをそのままAIに渡して「直して」と依頼し、原因を理解しない。
リスク:根本原因の未解決、さらなる複雑化、学習機会の喪失
対策:まず自分でエラーを分析し、AIには具体的な質問をする
❌ アンチパターン3: コンテキスト不足(Context Starvation)
問題:プロジェクトの背景や制約を伝えずにコード生成を依頼する。
リスク:既存コードとの不整合、規約違反、再利用困難
対策:関連コード、規約、制約を明示的に提供する(Context Engineering)
❌ アンチパターン4: 一括生成(Big Bang Generation)
問題:大規模な機能を一度に生成させる。
リスク:レビュー困難、バグの混入、修正の複雑化
対策:段階的精緻化パターンを適用し、小さな単位で生成・検証
パターン選択ガイド
| 状況 | 推奨パターン |
|---|---|
| 新機能の実装 | 段階的精緻化 + コンテキスト提供型 |
| 既存コードの修正 | コンテキスト提供型 + レビュー駆動開発 |
| バグ修正 | ペアプログラミング型 + テスト先行型 |
| リファクタリング | テスト先行型 + 段階的精緻化 |
| 設計検討 | ペアプログラミング型 |
| 本番環境向けコード | すべてのパターン + レビュー駆動開発(必須) |
参考文献
- MIT Technology Review "From vibe coding to context engineering" (Nov 2025)
- Thoughtworks Technology Radar Vol.32
- IEEE Software - AI-assisted development patterns (2025)