ペアプログラミングはクリプトナイト!

Chrisuserpic-31-100x100.png*本ブログは ATLASSIAN blogs を翻訳したものです。本文中の日時などは投稿当時のものですのでご了承ください。
*原文 : 2009 年 6 月 25 日、Chris Mountford 投稿 “Pair Programming is Kryptonite!

agile_development_blog_badge-thumb-185x99.pngペアプログラミングは、もっとも議論の対象になりやすいアジャイル開発のプラクティスです。そして私の経験上では、もっとも頻繁に回避されてしまうプラクティスでもあります。それは一部の人々をとても心地悪くさせます。

皆さまとの認識を合わせるために簡単に説明すると、ペアプログラミングとは、二人のプログラマーが一台のコンピューターで一緒に作業をすることを意味しています。はい、本当に。通常は、一人がコードを書くと同時に、もう一人は先回りして考えます。あるいは、一人が作業をしてもう一人が指示を出し、それを定期的に入れ替わりに行います。それを行う動機は、着手した時点からとても高い品質の作業結果を出せるということにあります。

ペアプログラミングでは、多くのデベロッパーが慣れている程度よりももっと、チームメートと接近することが要求されます。これは、力にもなりますし、最大の弱点でもあります。

他人とそれほど接近して作業をすることは、別のやり方として、隠れた個人的な問題を表面化させることができます。ペアプログラミングは、一部の人々にとってはとても挑戦的なことなので、このプラクティスはそのチームにとっては実行不可能なことであるということを、私は以前の仕事で経験しています。それを行うことで勇気と成熟さを備えますし、それには、お互いの尊敬、ユーモア、謙虚さが期待されるような健康的な環境が必要です。最低限の個々人の清潔さが必要であることには触れませんが!これは、たくさんの選択肢があるという特長をもつ、孤立的な形式をとる主義からはとても異なっていることです。この人間的な形式は、一部の人々にとって高すぎるバーを設定します。カウボーイ (注: 自分のルールでコードを書いていく人)、無力で内気な人、支配欲が強い人、そしてスーパーヒーロー、のどれもがペアプログラミングに抵抗します。それは彼らにとってクリプトナイト (注: スーパーマンの弱点である鉱石) のようなものなのです。

まるでトーキョーを初めて訪れてカルチャーショックを受けた西洋人のように、自分が当然もっている個人的な空間が劇的に小さくなってしまうことに慣れておらず、それは例えれば、通勤電車のようなものです。一部の人々にとっては、ペアプログラミングにより個人的空間が侵略されるのに慣れるということは、彼らが乗り越えなければいけない自分に課した障害なのです。

pairon.jpg

異なる人々とペアを組むことにより、この個人的な接触が、活力に満ちて挑戦しがいのあることになるのです。異なる振る舞いを必要とする、個性的相違の軸がいくつかあります。例えば、新参者-熟練者という軸や、内向的-外向的という軸があり、人々はそれぞれに異なる自然な働き方や、好みの問題解決戦略をもっています。例えば私は、伝統的ではない解決手段を試してみることをしばしば好みますが、それは、几帳面な人々を少しいらつかせるでしょう。それに気づくことにより、私は、適切にコミュニケーションを取ることができ、必要な場面で私の振る舞いを変えることができます。

ペアリングは、ものごとの両側面への適応と妥協の技能を必要とします。

効果のないペアプログラミングへと導く、たくさんの共通のアンチパターンがあります。これらのことは、とてもよく文書にまとめられていて、例えば、Laurie Williams と Robert Kessler による Pair Programming Illuminated などがあります。これらの問題は積極的に立ち向かう価値のあることです。なぜなら、効果のないペアプログラミングは、ペアプログラミングをしないよりも悪く、それは明らかに、自称で、夢想的な XP ファンと同等だからです。

ペアプログラミングについて最近私はたくさん考えていますが、(驚くべきことに) その理由の一つは、最近、私はペアプログラミングを行っていないからなのです。気分転換としても。(あっ!)

サポートの時間の一部で、たくさんの些細なバグの修正作業 (ペアプログラミングではない) から離れて、私は JIRA 4.0 に向けた初期段階のフィーチャーに一人で取り組んでいました。一人で、というのは、私たちのチームの現在の人数が奇数であるためです。(仕事を探していますか?) それは実際に私を、ペアプログラミングのプラクティスをある程度客観的に評価するための、素晴らしい立場においてくれました。

まず、ペアリングについてではなくて、他の良いことについて話します。私はいくつかの素晴らしい、新しいヘッドフォンをもっており、そ