ペアプログラミング

スラドペアプログラミング、実践してますか?と、そこへのコメント群を読んで思ったことをいくつか。

そもそもの目的

タレコミさんの文章では

一部研究によれば生産性が1人で作業した場合の2倍以上になるともされていますが

などと書かれているけれど、その生産性ってなんなの? という検討をしておかないとペアプロ導入の意味はなくなる。 単純に単位時間の成果物量(LOCとかFPとか)を測定するのは意味がなくて、品質まで考慮するべきであろう。http://slashdot.jp/askslashdot/comments.pl?sid=381687&cid=1256285 のコメントが的確。

仕事である以上速い遅いはほとんど関係なくて『どうすれば正確に(仕様通り)プログラミングできるか?』『どうすればバグ発生率の軽減できるか?』という課題に対する1つのアプローチがペアプログラミング

自分のところのささやかな事例もこれにあてはまる。インド人のスーパープログラマ一人がてきぱきこなした仕事より、日本人の(いい意味で)凡庸な若手二人がこなした仕事のほうが、後々のトラブル発生頻度が低く、結果的に安定している。このあたりまでを含めて生産性を測定できればよいのであろうが、どういう測定尺度があるのか私には知識がない。

どこに原因を見つけるか

そもそもの目的が決まったとしよう。そしてペアプロを導入したが効果がでなかった。そのときに「ペアプログラミングが悪い」とするのか「ペアプログラミングの方針は正しいが、他の何かがよくなかった」とするのか。コメントを見ていると、前者の結論を出して終了、という人がいるね。

ペアプロでうまくいっている事例がある以上、「ペアプロが悪い」と結論付けるのはよろしくないのでは。

あと「日本文化には合わない」みたいな諦めも、好きにはなれんなぁ。

その他

先日聞いてきたLinda Rising博士の講演では

  • 同じペアに同じ仕事を任せるより、ペアの交換・ペアに渡す仕事のローテーションを頻繁に行うほうが生産性と品質が向上する
    • 知識移転・伝播が効率的に行われるから、らしい。
  • 強力なリーダーシップで引っ張られるチームよりは、全員が対等・民主的なチームのほうがペアプログラミングはうまく回る
  • (論文にするほどのデータはまだたまってないが)ペアプログラミングを導入した職場では、女性開発者の離職率が極めて低くなる

などという話題が挙がっていた。