ペアプログラミングはここ数年で一番議論が続けられているプラクティスのひとつだ。ほとんどの支持者はペアプログラミングの利点をほめたたえることを惜しまないが、その人たちでもペアで作業することの導入に苦労があることを認める人は多いだろう。それはなぜか。Obie Fernandez氏はそうなる理由と考えられる10の項目を挙げている。
氏の会社Hashrocketの従業員であるDesi McAdam氏とJim Remsik氏の2人がペアプログラミングで得られる恩恵についてニューヨークタイムス誌へ寄稿した後、氏による示唆に富むブログ記事においてペアプログラミングが多くの職場で成功しない10の理由が概説された。氏はまずペアプログラミングの利点に対する純粋な思いを述べて氏の見解をそっと示してから、「ペアプログラミングはHashrocketが他社に負けないもっとも重要な事柄のひとつです」と述べている。
それに続いて「とりわけペアプログラミングはおおよそうまくいかないだろう、と多くのアジャイル理想主義者に対して私が教えてあげるべきと思うようになってきた事柄のひとつです」と言い、その理由をリストアップしている。
- 10 - たいていのソフトウェア管理者はハードウェアへの投資をしたくないため。効果的なペア作業には良い設備が必要になるが、たいていの職場ではその投資を望んではない
- 9 - たいていのソフトウェアの現場はペアプログラミングに最適化されてないため。たいていのソフトウェアの現場ではパーティションで区切られたスペースにプログラマがいて、そのようなスペース作りはペアプログラミングに向いてない
- 8 - たいていの現場では従来型の雇用方法を採用しているため。良いペア作業をするということは、その環境に適した人材が必要ということだが、たいていの企業の雇用方法はそのような人材の確保にあまり役立たない
- 7 - たいていのソフトウェアの現場では反社会的な行動を大目に見るため。ペア作業には謙虚さ(Obie氏の表現によれば馬鹿がいないというルール)が必要となる。反社会的(そして非健康的)な行動はペア作業と相容れないが、多くの現場ではプログラマの行儀の悪さを正すことに熱心ではない。
- 6 - たいていのソフトウェア人はペア作業の生産性を理解してないため。「作業効率を半分にしろって?」というペア作業に対する古くからの誤解がある
- 5 - たいていのソフトウェアの現場では適格の満たないディベロッパを雇っているため
- 4 - たいていのソフトウェアの現場で過労と人員不足に陥っているため。ペア作業は、特に考えなしのものであるほど、より多くの人員が必要となる(しかし必ずしもより多くの時間が必要となるわけではない)が、多くの現場ではそのような状況に備えてない
- 3 - たいていのソフトウェアディベロッパは、一緒に仕事をしている人たち全員を好いているわけではないため。社交的な人たちから成る小さなチームにいるのでないかぎり、一緒に仕事をしてハッピーになるには困難な時間をすごさないといけない
- 2 - たいていのソフトウェアディベロッパはそのような面倒なことをしたいと思わないため。ペアプログラミングは情熱的なものであり熱心に仕事をしないといけなくなるものだが、多くの人々はそのような面倒をする動機をもたない。
- 1 - たいていのソフトウェアの現場では優秀さのことを本当には気に懸けていないため。ペア作業に投資することは技能に投資することになるのだが、多くの現場ではそのような投資に興味がない
Obie氏のリスト(ここではかなり要約をしたので、判断をされる前に元記事全体を読んでいただきたい)は意見を表明したという以上に多くの反応を呼び起こした。そのほとんどは元記事自体の長いコメントリストに含まれている。
Brian Guthrie氏はObie氏の記事に対する注目すべき反論の中で自身のリストを作っている。
(Obie氏と)Hashrocketの想定する環境はペア作業について最善の環境をもたらしますが、最初にペアプログラミングを実践し始めた人たちがそのような状況にあったわけではありませんし、みながそのような環境にないといけないわけでもありません。
そしてObie氏が見逃しているとGuthrie氏が考える5つの項目をあげている。
- 5 - ペアプログラミングには高価なハードウェアはいりません。一台のマシン、予備のマウスとキーボード、そして会議室さえあればペア作業ができます。
- 4 - 全員と一緒になる必要はなく、今誰かひとりを好きであればいいのです。一緒になってもうまくいかない人たちをペアにしてはいけません。基本的に健康的なペア作業をおこなうことがどの現場でもできることです。
- 3 - 多くの会社はペア作業を試すのを歓迎しています。組織は人々が言うほどペア作業を怖れてはいません。
- 2 - 多くのソフトウェアの現場はROI(投資収益率)について深く関心を寄せています。たいていの現場では「優秀さ」それ自体には関心がありませんが、障害を減らし知識を広めることには関心があります。こういったことはペア作業でうまくやれることです。
- 1 - ペアプログラミングはエリートだけのものではありません。ペア作業の恩恵は誰でも受けて享受できるものです。ハードコアな人たちだけではありません。
時間を取ることになるがObie氏の記事もGuthrie氏の記事も元記事を読んでほしい。あなたの経験や考えになにかと共鳴するようなポイントが多く見つかるはずだ。