私のチームは、私がそこで働くずっと前から、ほとんど「極端なプログラミング」スタイルのショップの一部として、ペアプログラミングを始めました。ペアプログラミングはデフォルトの状態です。奇数の場合、または調査のために時折、特に敵対的な機器をいじり、それを機能させようとする場合、人々は本当にシングルトンになります。
「ジュニア/シニア」が唯一の方法ではありません。「中間/ジュニア」は便利です。それは、中級レベルの人が、他の人にそれを伝えることを強制することによって得た知識を統合するのを助けます。「中級/中級」とは、2人が協力して知識を共有し、コミュニケーションし、チームの一員として働くことです。そして、2人の本当に年上の人がいるとしても、彼らは異なる専門分野を持ち、異なるアプローチを考え出す可能性があります。知識共有の側面は、誰かがプロジェクトについて漠然と「スピードを上げて」いれば終わりません。むしろ、ペアプログラミングは学習組織の縮図です。新しい技術とベストプラクティスが急速に広まりました。
ペアプログラミングは、コードの品質(欠陥が少ない)とコードの健全性を維持するのにも役立ちます(意図したことを実行するだけでなく、本来行うべきことを実行します...間違ったことをしている穴、または乱暴に競合する2つの異なる正しいこと)。プログラマーが集中力を維持するのに役立ちます。ここでは、シリコンバレーの中心に位置し、週に80時間の仕事があります。1日8時間の集中的なコーディングを行っており、互いにオフ。(また、ペアプログラミングをより長く行った場合は、おそらく反転するでしょう。または、少なくとも燃え尽きます。) これは、ワーク/ライフバランスに最適であり、高速なターンアラウンド(特に低遅延のターンアラウンド)が重要な場合にも組織に役立ちます。
100%桃とクリームだけではありません。ペアプログラミングは、特定の問題に役立つ直感的な脳プロセスのアプリケーションの障害になることがあります。最近では、メモリリークタスクで、ペアを使用する場合と使用しない場合の両方で時間を費やしました。誰もいなかったので、私は自分が何をしていたかをいつでも正確に説明する方法を本当に知らなくても、いじくり回して実験をすることができました。シングルトンで作業することにはいくつかの利点もあります。接線に出て、気まぐれに特定のワイルドリファクタリング(XP方法論で評価)を行うことができます。
しかし、すべてが言ったように、利点はコストをはるかに上回り、ペアリングは私たちにとって見事にうまくいきました:スタートアップ段階から大企業による買収、そしてその後の統合まで。(そういえば、ペアプログラミングは、少しの売り上げにもかかわらず、拡張を通じて文化の継続性を維持するのに役立ちました)。
(ソフトウェアアプライアンスをPerlで開発し、リスト価格は4,000ドルから40,000ドルです。)