Contents
ペアプログラミングとは
ペアプログラミングとは、2人以上のプログラマが1つのPCを用いて共同でプログラミングする方法です。主にソフトウェア開発の下流工程のプログラミング開発で行われており、品質の向上などのメリットが見込めます。
PCに対してキーボードを操作してコードを書く人を「ドライバ」、横から意見や変更などの指示を行うもう1人を「ナビゲータ」と呼ぶことがあります。この二つの役目に分けて目安としては30分ごとか機能を1つ完成させる度に役割を交替するのがよいとされています。定期的に役割を入れ替えることで知識の共有などお互いの技術レベルの向上にもつながるため教育面での利用もされています。
しかし、問題として初心者や経験が少ないもの同士が行うとお互いに教え合う部分が少なかったり、悩む時間が増えてしまう可能性があるため考えなしに導入するのには注意が必要です。二人でプログラミングをすることは単純に工数が同じでも人数が2倍かかってしまうため作業の質がよくならないと生産性が低くなってしまいます。
似たような方法にモブプログラミングが存在します。
ペアプログラミングのメリット
ペアプログラミングの利点には以下があります。
リファクタリング
リファクタリングとは、プログラミングの動作を変えずにコードを変えることを指し、ペアプログラミングでは複数人のプログラマーによってコードを書くためより短く修正しやすいコードにすることができます。
意欲の向上
ペアプログラミングはプログラミングの中で珍しく他人と話しながらコーディングをするため、睡魔に襲われながらコーディングすることもボーっと怠けながらすることもないので1人げやる時よりも集中して行うことも期待できます。
教育での利用
プログラミングの初心者にとって1人でコーディングすることはコーディング以外にも環境設定やわからないところの解決の仕方などわからないことが多いためナビゲータ役にプログラミング経験豊富な人材を配置することでわからないことやミスをすぐさまに解決してあげることで初心者への効率的なプログラミング学習につながります。
ペアプログラミングのデメリット
ペアの選定が大変
二人の技術力に圧倒的な差があるときは片方が退屈になる可能性が高いです。特にナビゲータが技術力がない人の時はドライバがただコーディングしているだけでペアプログラミングの利点をいかせません。それ以外にも先ほどもあげたような初心者同士の時は教え合うレベルに達していないとコーディングが全然進まないという失敗につながります。
意見が合わない
仕様書に書き方の指定が詳細に書いていない場合、コードの書き方はプログラマーのやり方でかかれることがあります。簡単なところだとfor文を
for(i = 0; i < 10; i++){ printf("Hello World¥n");}
for(i = 0; i < 10; i++){
printf("Hello World¥n");
}
for(i = 0; i < 10; i++) printf("Hello World¥n");
と3パターンは存在します。
細かい違いですが結構プログラマーによって書き方が違うためこういう書き方の違いや実装する機能の処理方法の違いなどから意見が衝突する可能性があります。
コメント