ペアプログラミング
利点の裏返しで弱点も存在している。また、利点に安住するリスクもある。
経験を積んだ開発者によっては、初心者とのペアプログラミングを退屈な指導と捉える場合もある。
一部の技術者は1人で作業することを好み、ペアでの作業を面倒と感じる場合もある。
プログラマの生産性についてはさまざまな議論があり、ペアプログラミングで生産性が必ず向上することが保証されているわけではない。
経験を積んだ技術者は、非常に正確なコードを書く。その場合、ペアを組んだとしても、もう一人が何か寄与することは難しい。 ペアプログラミングの目的は、正確性の向上だけでなく、知識や技術の共有という面もある。
コーディング・スタイルの違いによって、一種の衝突が発生する場合もある。 エクストリーム・プログラミングなどでは、コーディング・スタイルは統一すべきものであるとしている。
各人のスケジュールが異なるようなプロジェクトでは、スケジュールがうまくかみ合ったときにだけペアプログラミングが可能となる。したがって、その場合にペアプログラミングを採用すると、作業にかかる工数が増加するだけでなく、ペアプログラミングに割ける時間が制限され、結果として完了までの期間が長くなる。 エクストリーム・プログラミングなどでは、そもそもコードは特定の個人が独占するものではなく、また、30分から数時間の頻度でペアを交換するべきである。つまり、その時に作業可能な2人がタスクをこなしていくのである。これが可能になるのは、エクストリーム・プログラミング自体のタスクの粒度の小ささにも由来している。