業務等でweb開発を行っていますが、昨今のAIエージェントを使った開発をしていると「人がコードを書く時代は終わった」と思ってしまいます。
コードを書くことは、私にとっては手段に過ぎないのだなと実感させられました、なぜならAIの方が良さげなコードを短時間で書いてしまうから。
2024年以前は間違いが多く、業務で使うには何年か必要じゃないかと思ってましたが、1年足らずで使えるものが来てしまいました。
今後はAIエージェントを使って開発していこうと思うのですが、AIを使った開発手法として実際はどんなものが存在するのでしょうか?
一旦整理したいのでClaudeと相談しつつ、整理をしてみました。
AIを使った開発手法一覧
AI技術の進化により、ソフトウェア開発のアプローチも大きく変化しています。2024-2025年現在で注目されているAIを活用した開発手法を紹介します。
1. バイブコーディング(Vibe Coding)
曖昧な指示や雰囲気だけでAIにコードを書かせる手法です。
特徴:
- 詳細な実装方法は指定しない
- 即興的・探索的なアプローチ
- プロトタイピングやアイデア探索に適している
2. プロンプト駆動開発(Prompt-Driven Development)
自然言語のプロンプトで開発を進める手法です。
特徴:
- バイブコーディングより構造化されたプロンプトを使用
- 新規機能やプロトタイプ作成に有効
- 要件を明確に言語化することで品質が向上
3. AIペアプログラミング(AI Pair Programming)
人間とAIが協力してコーディングを行う手法です。
特徴:
- 人間が設計・方向性を決定、AIがコード実装・レビュー
- GitHub Copilot、Cursor などが代表例
- 現在最も普及している手法
4. 対話型デバッグ(Conversational Debugging)
エラーやバグをAIと対話しながら解決する手法です。
特徴:
- スタックトレースを渡して原因分析と修正案を取得
- 複雑なバグの原因究明を支援
- 日常的に広く使われている
5. AI支援リファクタリング(AI-Assisted Refactoring)
既存コードをAIに読ませて改善提案を得る手法です。
特徴:
- レガシーコードのモダナイゼーションに活用
- コード品質向上に特化
- 技術的負債の解消に効果的
6. テスト駆動 × AI(AI-TDD)
テスト駆動開発にAIを組み込んだ手法です。
特徴:
- テストケースを人間が書き、実装をAIに生成させる
- またはAIにテストも書かせて相互チェック
- 品質保証を重視したアプローチ
7. スペック駆動開発 + AI(Specification-Driven Development with AI)
詳細な仕様書を基にAIがコードを生成する手法です。
特徴:
- 仕様書に基づいてAIがコード生成
- 「ドキュメント・ファースト AI開発」とも呼ばれる
- 安定性・品質管理に優れる
8. マルチエージェント開発(Multi-Agent Development)
複数のAIエージェントに異なる役割を割り当てる手法です。
特徴:
- 設計者、実装者、テスター、レビュアーなどで分担
- チーム開発をAIで模倣
- まだ実験的段階
9. API/型定義駆動開発 + AI
インターフェース定義からコードを自動生成する手法です。
特徴:
- OpenAPI、GraphQL スキーマ、型定義から自動生成
- バックエンド・フロントエンド連携に有効
- 契約ベース開発との相性が良い
10. AI コードレビュー
プルリクエストを自動でレビューする手法です。
特徴:
- コーディング規約チェックや改善提案
- レビュー工数の削減
- 人間レビュアーの負担軽減
普及度による分類
広く使われている(2024-2025年現在)
- AIペアプログラミング
- 対話型デバッグ
- AI支援リファクタリング
部分的に使われている
- プロンプト駆動開発
- AI コードレビュー
- API/型定義駆動開発 + AI
まだ発展途上
- バイブコーディング
- スペック駆動開発 + AI
- マルチエージェント開発
どの手法を選ぶか?
私は仕様書駆動開発(スペック駆動開発)を軸に開発をしようと思っています。
理由は仕様書からコーディングさせると同時に他の各種ツールに展開しやすくする為です。
図ではMCP経由になっていますが、最近ではclaude codeでskillsやsub agentsも流行っているので、AIエージェントが操作する方法は多岐に渡ります。
人間は適切な指示をAIエージェントへ伝えることに集中できます。
テスト戦略
仕様書駆動ではテストはどうすればよいか?
Claudeに相談した結果以下のようになりました。
1. 段階的テストアプローチ
初期段階(仕様が固まってない時)
❌ 詳細な自動テストは書かない
✅ 手動で動作確認
✅ AIに簡易的なテストコードを生成させて実行
✅ 重要な部分だけスモークテスト
中期段階(仕様がある程度固まってきた時)
✅ コア機能の自動テストを追加
✅ AIにテストケースを書かせる
✅ エッジケースのテストを増やす
後期段階(仕様がほぼ確定した時)
✅ 包括的な自動テスト
✅ リグレッションテスト
✅ E2Eテスト
2. テストの優先順位
高優先度(必ず書く)
ビジネスロジックの中核
データの整合性チェック
セキュリティ関連
金額計算など重要な処理
中優先度(仕様が固まったら書く)
API のレスポンス形式
バリデーション
画面遷移
低優先度(後回しでOK)
UIの細かい見た目
エラーメッセージの文言
頻繁に変わる部分
セキュリティホール対策
AI開発は便利ですが、セキュリティホールを作ってしまうことがあります。
そこはrulesでもカバーしますが、やはり最後は人の目で確認します。
開発フロー
具体的な開発フローは以下のような形になります。
- AIと仕様を固める
- 重要な機能だけテストケースを決める
- AIに実装させる
- AIにテストコードも書かせる
- テストを実行
- エラーが出たら修正
- 画面の動作を確認
- 思ったのと違ったら仕様書を修正
- テストも修正
- 3に戻って繰り返し
頻繁に修正する部分のテストは後回しにしたりすると思います。
プルリク時にはコードを人の目で確認します。
まとめ
AIの登場で、開発者の仕事が変わりました。
コードを書く → AIを使いこなす
私の開発スタイル
- 仕様書(Markdown)を書く
- AIに実装を任せる
- 人間は仕様と方向性だけ考える
これから必要なスキルはコードを書く技術より、AIに適切な指示を出す能力が大事になると思っています。
次回は、実際にWebアプリケーションを作りながら、仕様書の書き方からAIへの指示、テスト実行までを実況解説します。