Index: [Article Count Order] [Thread]

Date:  Fri, 22 Feb 2002 19:35:16 +0900
From:  "Takashi IWASAKI" <tiwasaki@....jp>
Subject:  [XP-jp:03243] ペアプログラミング実践の検討案
To:  <extremeprogramming-jp@....jp>
Message-Id:  <008b01c1bb8c$9defab70$c2013c0a@HAI01507>
X-Mail-Count: 03243

岩崎と申します。
日頃より、当MLにてXPを学習させて頂いております。
今回、初めて投稿となります。

今、私が所属している部署における
「ペア・プログラミング」の実践について検討しております。

私なりに、これまでのペア・プログラミングを実践した報告など
を参考に、当部署の特徴を踏まえた実践方法について検討してみました。

まだまだ稚拙な検討案かもしれませんが、
もし宜しければ、皆様よりご指摘、ご意見などを伺えればと
願っております。

以下に内容を記しました。
宜しくお願い致します。

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<私が所属している部署の特徴>
1.「新しい技術」に取り組む機会が多い。
2.担当している顧客を複数抱えている人が多い。
3.顧客へのサポート業務が日々行なわれている。

1.については、部内の教育が必要となる。
2.3.については、開発に100%参加することが難しい状況である。

このような現状を踏まえて、当部署における
ペア・プログラミングの実践を検討した。
------

1.新しい技術の習得に対応したペア

□ 経験レベルが同じ者同士のペア

[メリット]
・お互いが知恵を出し合うことで、より効率的にバランスよく習得することができ
る。
・1人で悩むことが無くなり、広い視点をもった人に眺めてもらうことで、問題解決
が早くなる。
[デメリット]
同じ問題に対して深みにはまってしまう。

□ 熟練者と非熟練者によるペア

[メリット]
非熟練者にとって、高い教育的な効果を得ることができる。
[デメリット]
熟練者の開発効率が下がる恐れがある。

2.開発に100%参画することが困難な状況に対応したペア

顧客を複数抱えた人はペア・プログラミングの原則に従って
(5分〜10分ごとにドライバとパートナを交代する。)
プログラミングを行なうのは困難であるので、
顧客担当の人は、今まで培った業務知識を活かして
常に「パートナ」を努める。
さらに、「ドライバ」に技術力が豊富な人を持ってくる。

[メリット]
難易度の高い部分や、システムの中心部分の品質を高めることができる。
[デメリット]
開発メンバ間でペアのバランスが崩れてしまう。

------
デメリットを克服するには、
常にペアのローテーションを行なっていくことで解決していく。

ペアのローテーションを行なうことで、
それぞれのペアで習得した知識を開発メンバの間で、
広く伝播させることができる。
それによって、開発メンバの間で認識のズレを防ぎ、
メンバ全体の技術向上を図ることができる。

ペア・プログラミングを実践することで
・バグ発見の早期化
・コードの軽量化
・知識の伝搬、認識のズレを防止
・教育的効果
・困難や障害へのモチベーション向上

といった効果を得ることができ、その結果、品質を向上することができる。
------