第1部:AI駆動開発の深化 Step 3 / 36

複雑なタスクの分解術

大きな機能を「丸投げ」してもAIは困ってしまいます。複雑なタスクを適切に分解し、順序立てて依頼することで、高品質なコードを効率的に生成できます。

なぜタスク分解が必要なのか

丸投げの問題点

  • ✗ AIが全体像を把握しきれない
  • ✗ 中間成果物の確認ができない
  • ✗ 問題が起きた時に原因特定が困難
  • ✗ 出力が長すぎて途中で切れる
  • ✗ 品質にばらつきが出る

分解のメリット

  • ○ 各ステップで品質を確認できる
  • ○ 問題があればすぐ修正できる
  • ○ AIが集中して高品質な出力を生成
  • ○ 進捗が可視化される
  • ○ 学習・理解が深まる

タスク分解の基本原則

1. 依存関係を意識する

後続のタスクが必要とするものを先に作る

データベースモデル → API → フロントエンドUI
型定義 → ユーティリティ関数 → コンポーネント
設定ファイル → 初期化処理 → メイン機能

2. テスト可能な単位で区切る

各ステップの完了を確認できるようにする

✗ 「認証機能を作って」(完了の判断が曖昧)
○ 「ログインAPIを作って、curl で動作確認できるようにして」

3. 1タスク = 1関心事

複数の異なる関心事を混ぜない

✗ 「ユーザー登録とメール送信と管理画面を作って」
○ 「ユーザー登録APIを作って」→「メール送信機能を追加して」→...

実践的な分解パターン

パターン1:レイヤー別分解(フルスタック機能)

新機能を追加する際の王道パターン

Step 1 データベースモデル・マイグレーション
Step 2 Pydantic スキーマ(リクエスト/レスポンス)
Step 3 サービス層(ビジネスロジック)
Step 4 APIエンドポイント
Step 5 APIクライアント(フロントエンド)
Step 6 UIコンポーネント
Step 7 ページ統合・ルーティング

パターン2:CRUD別分解

データ操作機能を段階的に追加

Create
新規作成機能
Read
一覧・詳細表示
Update
編集機能
Delete
削除機能

パターン3:ハッピーパス → エッジケース

まず正常系を完成させ、その後で異常系を追加

Phase 1: 正常系のみで動く最小実装
Phase 2: バリデーション追加
Phase 3: エラーハンドリング追加
Phase 4: エッジケース対応

AIに分解を手伝ってもらう

タスクの分解自体をAIに相談できます。

分解を依頼するプロンプト

以下の機能を実装したいです。実装の順序を教えてください。

【機能】
プロジェクト管理ツールに「タスクのコメント機能」を追加したい

【要件】
- タスクにコメントを追加できる
- コメントの編集・削除ができる(投稿者のみ)
- コメントにはメンション機能がある(@ユーザー名)
- メンションされたユーザーに通知が届く

【技術スタック】
- Backend: FastAPI + SQLAlchemy + MySQL
- Frontend: Next.js + TypeScript

【質問】
1. どのような順序で実装すべきですか?
2. 各ステップで作成するファイルは何ですか?
3. 各ステップの完了確認はどうすればいいですか?

AIの回答を受けて:提案された分解を確認し、納得できたら「では Step 1 から始めてください」と進めます。調整が必要なら「Step 2 と 3 は同時にやって」など修正を指示します。

実践例:コメント機能の分解

1

Comment モデルとマイグレーション

「backend/app/models/comment.py を作成。task_id, user_id, content, created_at, updated_at。マイグレーションも実行して」

2

コメントCRUD API

「POST/GET/PUT/DELETE の基本APIを作成。Swagger UIで動作確認できるようにして」

3

フロントエンドのコメント表示

「タスク詳細画面にコメント一覧を表示。APIから取得して表示するだけでOK」

4

コメント投稿フォーム

「コメント入力欄と送信ボタンを追加。投稿後は一覧を更新」

5

編集・削除機能

「自分のコメントに編集・削除ボタンを表示。モーダルまたはインライン編集で」

6

メンション機能

「@を入力したらユーザー候補を表示。選択したらリンクとして保存」

7

通知機能

「メンションされたユーザーに通知を作成。通知一覧画面も追加」

まとめ

  • 丸投げは避ける - 大きなタスクを一度に依頼しない
  • 依存関係を意識 - 後続タスクが必要とするものを先に作る
  • テスト可能な単位で - 各ステップの完了を確認できるようにする
  • 分解パターンを活用 - レイヤー別、CRUD別、ハッピーパス優先など
  • AIに分解を相談 - 分解自体もAIに手伝ってもらえる
AIエージェントの活用 次へ:AIの出力を検証する