ブログ

ペアプログラミングの使いどころ

2006年01月27日(金)12:46|久末

久末です。

ペアプログラミング(プログラミングする際に、2人一組のペアを作って作業すること。ペアプロ)の使いどころについて。

いま、ある案件をペアプロで開発している。 この案件はRubyOnRailsを使ったはじめてのプロジェクトだ。 進めているうちに、このプロジェクトはペアプロでやっているほうが早いのではないかと思うことがいくつかあった。

ドライブ感

プログラミングをしているとき、進んでいる感じ→ドライブ感は非常に大切で、モチベーションの素になる。 一人でプログラミングする場合、

「○○の場合、△△すれば実装できる」

というポインタが頭の中に入っていて、そのポインタが指すのが内部記憶ならば、記憶から引き出し、外部ならばネットや書籍で実際に調べる。 しかし、未知の部分が多い場合、このポインタの精度が悪い、または、間違っていることが多々あり、それを調べるのに時間がかかる。また、調べている間にわき道にそれたり、スタックオーバーフロー(つまり忘れる)して、そもそもやりたかったことに戻るのに時間がかかったりする。

ペアプロはその調べる部分をパートナーにまかせながら、プログラミング担当は制限されたスコープの中で試行錯誤することができる。これにより、作業を進めることができ、ドライブ感が増す。

また、実装方法を取捨選択する際に、パートナーに相談することで意思決定をすばやくすることができる。(一人でやっていると結構悩む→ドライブ感低→萎え)

共有

知識、知恵、経験が少ない場合、ペアプロはプログラミングを同時に経験するため、知識、知恵、経験を同時に共有することができ、一人一人でやっている場合のコミュニケーションにかかるコストが下がる。

何度も経験のあるようなシステムのプログラミングならば、上述のコストは一人一人でやってもほとんどないだろうし、 ペアプロするためのコスト(ペアがいないとできない、同じ場所にいないとやりにくい、プログラム担当がガーっと書いているときに暇)が相対的に重くなるのではないだろうか。 また、通常のプロジェクトの場合、自然に、場合に応じてペアを組んで、当面の問題が解決されたら解消というケースが多く、ペアプロを完全に遂行したことは今のところ無い。 当然、定量的な評価を出せないので、「良い感じがする」以上のものにはなっていないところが微妙。

結論

チームのプログラミングの方法が同じようになされる(誰でも、誰かがかいたプログラムをほとんどコストなく途中で代わることができる状態)のであれば、ペアプロによる利益はあまりなく 難しい課題、初めての要求などに応える場合はペアプロによる問題解決のほうが時間的、精神的コストを抑えることができ、プロジェクト遂行に役に立つと思われる。

余談

私(久末)が東京コンピュータ専門学校で非常勤講師をしているときに出した課題をペアプロの場合と一人一人でやるという場合に分けたことがある。 彼らの専門はゲームプログラミングで私が教えていたのはWebプログラミング。つまり、彼らにとって未知の部分が多い課題ということになるのだが、この場合、全体的なスキルはペアプロの方が良い。ただ、デキル生徒は一人でやらせたほうが伸びる率は高いと感じた。

この記事に関するお問い合わせはこちら

ページの先頭へ