部分的には、ペアプログラミングの方法によって異なります。場合によっては、ペアのドライバーがコードを書いている間に、ペアの2番目のメンバーがシステムの設計と実装の詳細を観察し、議論しています。ペアプログラミングのもう1つの例では、両方の人が同時にコードを記述します。1人は実装された機能を記述し、もう1人はユニットおよび統合レベルでテストコードを積極的に開発および記述し、システムの設計と実装の詳細について議論します。
ペアプログラミングのタイプに関係なく、継続的なコードレビューとして効果的に機能します。あなたはコードに2人の目を向け、エラーが後のシステム/受け入れテスト環境またはフィールドに逃げる前にエラーを監視します。また、システムの特定の部分を非常によく理解し、バスファクターを最小限に抑えるための冗長性を提供する2人のユーザーがいます。。欠陥を早期に発見し、システムの知識をチーム全体に広めることで、システム構築のコストを削減できます。
知識の普及は、チームの技術的な知識だけに限定されません。ペアが誰であるかによって、コーディングスタイル、企業文化、期待など、プロジェクトを超えた他の事柄について、会社の上級メンバーから新しいメンバーに情報が流れるようになります。また、技術やツールに精通している人が、実際の環境でその技術やツールの知識を共有できるようにすることもできます。
あなたが述べたように、それはまた、開発者に集中し、 流れ。流れに加えて、多くの個人は、何かに取り組んでいる単一の個人よりも、何かに取り組んでいる複数の人々を中断する可能性が低い。誰かの机のそばを歩いていて、彼らが一人で働いているが、彼らと話をする必要がある場合、ノックして話をするかもしれません。これは、2人以上の人々が共同で作業している、またはディスカッションしているのを見た場合に起こりにくくなります。中断することはありません。中断には時間がかかり、より多くの時間を費やすことはより高いコストを意味します。従業員の生産性を最大化することは、ビジネスの最大の利益になります。
ただし、ペアプログラミングを実行可能にするには、克服しなければならないいくつかの課題があります。性格の衝突や知識の適切な配布のためのペアの選択などを考慮してください。ペアを回転させるタイミングを正確に考慮することもあります。偶然に行われたペアプログラミングは、おそらく計画されているものとしては効果的ではないでしょう。チームの構成によっては、人をペアにすることはまったく効果的でない場合があります。