日本企業ではペアプログラミングを導入してはいけない

ペアプログラミングについてみんなが誤解していること
http://hiroki.jp/2011/07/05/2009/
を読んで考えたこと。

開発者として導入を薦めるためにはどうすれば良いのかを検討していたら
なんとなく憂鬱になってきたので共有。

とりあえず終わればいいと考えている人の視点をシミュレートしてみる

ペアプログラミングはコードを書く時間が15%増える

コーディングの時間が増えてしまうということは生産性が下がることを意味しています。
コスト削減のため、生産性の低い会社とは契約を結ぶことはないでしょう。
コーディングフェーズで単独でペアプログラミングなんて始めたら、テストフェーズ以降での契約は期待しないでください。

ペアプログラミングはコード量が20%少なくなる

見積よりも簡単な機能でしたね。なんでそんなに時間をかけてコーディングしたのでしょうか?

ペアプログラミングはバグの検出数が下がる

当社ではかつてのプロジェクトからステップ数単位でのバグの検出率が規定されています。
バグの検出数が少ないということはテストケースの品質が悪かったのでしょう。
追加でテストを行う必要がありますね。*1


とまあ、こんな感じで、なんとなく嫌な感じになりそうだなぁという。
なんでSEしているんだろう・・・・・・

ペアプログラミングを成功させるために必要だと感じる条件

ちょっと視点を変えて。
実は以前ペアプログラミングを行っていたところを見たことがあるのだけれども完全に失敗していました。
そこの状態をみて最低限これだけは守りたい二つの条件について。

  • ペアの内ひとりはPGに精通していること
  • ペアは適度に入れ替えること

ふたりとも素人だとひどい事になりますよ?
以前見たところでは、コピペの嵐。
二人いればサボることはないと考える方が多いのはわかりますけれども、
実際は二人いても出来ないことは出来ず、逆になんで二人いるのに出来ないんだという考えになってしまう気がします。
その結果、他のチームのコードをコピペをしてたくさんのコードを書いているように見せかけ、
結果品質が下がってしまったようです。
とは言っても一人で書かせていても同じですが・・・・・*2

ペアを適度に入れ替えさせるのは、ふたりともPGに精通していない場合の発見をしやすくするためです。


ペアプログラミング自体は好きな考え方なのですが、どうすれば上司(お客さん含む)を説得できるのかなぁ。

*1:実際はバグの数はコード量に比例することが知られているので、多分品質評価としては他の機能と一緒になるはずですが

*2:OSSというか、ネット上に転がっているソースがヘッダーの著作権欄だけ書き換えられてそのままCVS上に載っていたのを見たときは驚きました。社内システムなのでどうでもいいのかもしれませんが