並列開発
複数のタスクを同時に進行させる開発手法。コンテキスト切り替えのコストを削減しつつ、スループットを向上させる。
条件
並列化に適したタスクには条件がある。
並列化に適したタスク:
- 異なるモジュール・ディレクトリで作業する
- 共通のファイルを編集しない
- 明確に定義された範囲がある
並列化に向かないタスク:
- 同じファイルを編集する必要がある
- 一方の結果が他方の前提になる
- 要件が曖昧で探索的な作業
実現方法
Git Worktree
Git Worktreeを使うことで、同一リポジトリで複数のブランチを同時にチェックアウトできる。各worktreeで独立した作業環境を持てる。
AIエージェントとの組み合わせ
Claude CodeなどのAIエージェントと組み合わせると、各worktreeに専用のセッションを割り当てられる。それぞれがタスク固有のコンテキストを保持したまま作業できる。
詳細はClaude CodeとGit Worktreeによる並列開発を参照。
コンテナ分離との組み合わせ
Git Worktreeとコンテナ分離を組み合わせることで、より安全かつスケーラブルな並列開発が可能になる。
- 各worktreeをDev Containerで開くことで、独立した実行環境を提供
- 依存関係の衝突を回避
- 最小権限の原則に基づいたセキュリティ設定
- リモート開発環境でのスケールアウト
注意点
- リソース消費: 複数セッションを同時実行するとAPI費用やメモリ消費が増加
- 設計判断の分離: タスク分割と方向性決定は人間が行い、実装を委譲する
- マージコンフリクト: 独立したタスクを選んでもコンフリクトのリスクは残る