
ペア・プログラミングの採用を成功させるには
本稿は、これまでにペア・プログラミングの経験が多少あり、合理的なペア・プログラミングの採用に向けて組織の協力を求めている読者を前提としています。このアドバイスは様々な役割の人に有効ですが、主にペア・プログラミングをチームに導入しようとする開発者やチーム・リーダに向けて書かれています。

本稿は、これまでにペア・プログラミングの経験が多少あり、合理的なペア・プログラミングの採用に向けて組織の協力を求めている読者を前提としています。このアドバイスは様々な役割の人に有効ですが、主にペア・プログラミングをチームに導入しようとする開発者やチーム・リーダに向けて書かれています。
ペアプログラミングはアジャイルソフトウェア開発テクニックのひとつで,2人のプログラマが1つのワークステーションで共同作業する,というものだ。そのメリットはよく知られていて,広く採用されているテクニックでもある。ところで,ペアを行うのにもっともよい座席位置とはどのようなものだろう?
Stuart Wray氏は、チーム環境でペア・プログラミングの実際の効果について分析する記事を執筆し、ペア・プログラミングの効率の改善に適用可能な4つのメカニズムを特定しており、さらに、それらのメカニズムが、製品品質の改善をもたらす理由についても分析している。
多くのプログラマにとってプログラミング技術を学ぶよく知られている方法として例から学ぶ方法がある。具体的にいえば、他の人がどうしているのか、観察することだ。Antony marcano氏とAndy Palmer氏の"PairWithUs"では観察するだけの素敵なサイトを公開している。
ペアプログラミングはここ数年で一番議論が続けられているプラクティスのひとつだ。ほとんどの支持者はペアプログラミングの利点をほめたたえることを惜しまないが、その人たちでもペアで作業することの導入に苦労があることを認める人は多いだろう。それはなぜか。Obie Fernandez氏はそうなる理由と考えられる10の項目を挙げている。
知識の伝達を特徴づけるのは、文脈についての理解を、1つの単位(個人や、チーム、部門、組織)からもう1つの単位へ転送することだ。Steve Bockman氏は一連の実験を行い、Agileプロジェクトで知識を伝える最適な方法を探り出そうとした。
"なぜこの世界では1つの仕事を2人でするのか?" 初めてペアプログラミングの考え方を紹介されたとき、多くの人は最初にこのように反応する。本質的に、彼らは、ペアプログラミングとはある部分のコードを書くコストが2倍になることだと考える。Dave Nicollete氏が、ある計量的な考え方を示し、ペアプログラミングはお金を無駄にするのではなく、節約することを示している。
テスト駆動開発」と「ペアプログラミング」は、アジャイルプラクティスで最も広く知られているものの2つであるが、まだそれほど多くのアジャイルチームによって実践されてはいない。たいていその理由として、TDDやペアプログラミングなどのプラクティスを取り入れるには「忙しすぎる」点が挙げられるだろう。要するに、これは高いコード品質を得ようと努力することが生産性を低下させることを示唆している。Mike Hill氏は、この論理がなぜ重大な誤りであるか説明している。
Bob Martinおじさんは、見習いとの経験、および見習いから熟練職人に進むための鍵が何かと考えるかについて、最近書いた。 彼は2人の仮想の見習いについて記述している:Samは同じ師匠の下で15年弟子として過ごした開発者。もう一人のJasmineは途中で彼女のスキルを伸ばすために数回仕事を変更した(したがって師匠も変更した)。