【開発ナレッジ】ペアプログラミング・モブプログラミング - 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人以上で集団的に開発。

どちらも状況に応じて使い分けることが重要。