【開発ナレッジ】ペアプログラミング・モブプログラミング - j-komatsu/myCheatSheet GitHub Wiki
ペアプログラミング・モブプログラミング
1. 概要
ペアプログラミング(Pair Programming)
読み方:ペアプログラミング
2人のプログラマーが1つのコンピュータを共有しながら、協力してコードを書く開発手法。
モブプログラミング(Mob Programming)
読み方:モブプログラミング
3人以上の開発者が1つのコンピュータを使用し、集団でコードを開発する手法。
2. ペアプログラミングの詳細
2.1 特徴
役割 | 説明 |
---|---|
ドライバー | 実際にコードを記述する人 |
ナビゲーター | コードのレビューや設計を考える人 |
メリット
- バグの早期発見
- 知識の共有
- コーディングスキルの向上
デメリット
- コミュニケーションが必要
- 速度が遅くなることも
2.2 フロー
graph TD;
開始 -->|役割分担| ドライバー
ドライバー -->|実装| ナビゲーター
ナビゲーター -->|フィードバック| ドライバー
ドライバー -->|修正| 終了
2.3 コード例(Python)
# ナビゲーターが仕様を決定
# ドライバーが実装する
def add_numbers(a, b):
return a + b
print(add_numbers(3, 5)) # 出力: 8
3. モブプログラミングの詳細
3.1 特徴
役割 | 説明 |
---|---|
ドライバー | 実際にコードを記述する人 |
ナビゲーター | ロジックを考える人 |
モデレーター | 進行管理やアイデアをまとめる人 |
メリット
- 知識共有の促進
- チームワークの向上
- アイデアの多様性
デメリット
- 意見調整が必要
- 効率が落ちる場合も
3.2 フロー
graph TD;
開始 -->|役割分担| チーム
チーム -->|議論・設計| ドライバー
ドライバー -->|実装| ナビゲーター
ナビゲーター -->|レビュー| モデレーター
モデレーター -->|フィードバック| チーム
チーム -->|修正| 終了
3.3 コード例(JavaScript)
// モブプログラミングの一例
// チームで関数を考え、実装し、レビュー
function multiply(a, b) {
return a * b;
}
console.log(multiply(4, 6)); // 出力: 24
4. どちらを選ぶべきか?
条件 | ペアプログラミング | モブプログラミング |
---|---|---|
小規模プロジェクト | ◎ | △ |
大規模プロジェクト | △ | ◎ |
知識の共有 | ◎ | ◎ |
初心者の育成 | ◎ | ○ |
5. まとめ
ペアプログラミングとモブプログラミングは、それぞれ異なる特徴を持つ開発手法。
- ペアプログラミング は 2人で効率的に開発。
- モブプログラミング は 3人以上で集団的に開発。
どちらも状況に応じて使い分けることが重要。