1つのプログラムを2人で作るという重要な行為について、我々がしない3つの理由

今日は久しぶりにアジャイル開発系のセッションを聞きました。


まぁこういう話を聞くとペアプログラミングは素晴らしい、だからみんなすべきだって話になるんですが、そんな話は5年前からJJUGとかアジャイル開発のイベント行くとみんな登壇して喋ってますよね。
でもみんなしない。
ぼくもしない。


なんでだろう、ということで考えてみたら、思い当たる節がある。
それは以下の3点だ。


1.1つのミッションを2人でやることがリソースの無駄遣いに感じる
2.プログラミングとは孤高の行為であり、誰にも邪魔されず一人でしたい
3.パートナーに自分の酷いプログラミングの腕がバレるのが嫌だ




1.1つのミッションを2人でやることがリソースの無駄遣いに感じる


これはプログラマー不足がそうさせてしまうのか、SIerのSE(笑)という日本独自の下品で最低な下請け構造が悪いのか、プログラマーが総じてマネジメント能力が低い場合が多いからなのかは不明だが、分業は一見効率がよく見える。
だが、アジャイル開発推奨派は、プログラミングはソロ活動よりペアプログラミングのほうが、問題の早期解決に繋がるし、良い物が書けると言うのだ。
スタートアップではこれをCEOが大事にしていれば最低2人のプログラマーをメンバーにするのが良い。
そして、これができないという言い訳はいくらでもあるのは問題。



2.プログラミングとは孤高の行為であり、誰にも邪魔されず一人でしたい


プログラマーはプログラミングに集中している時は気持ちを切りたくないと思っている。
なので一人で集中できる環境というのを作りたがるものである。
また、ノっている時は本当に速度を出して開発できるので止めたくないのだ。
これはポモドーロテクニックがプログラマーが使うのを嫌がるのと同じと思う。
実際は本当に集中できる事よりハマっている事のほうが多いので、実は孤独な作業は良くないのかもしれない。



3.パートナーに自分の酷いプログラミングの腕がバレるのが嫌だ


じつはコレが一番根深い問題かもしれない。
ペアプログラミングは勉強になるし、チームメンバーのプログラミング能力を高める事ができると言われているのだが、実はこれは相手のプログラミング能力がバレてしまうという事の裏返しであるのだ。
例えば、1年以上会社勤めをした人は後輩が入ってくると思うのだが、その後輩より能力が低かったらどうしよう。
プログラミング能力を高めたいというより、自信の無い人が自分のヘボさがバレる恐怖のほうが勝ってしまうのだ。



以上3点がペアプログラミングをしない理由として考えられると思う。
因みに僕は新入社員の時、同期に恵まれてたまたまできたプログラミング勉強法が、1つのプログラムを作ったあと俺ならこう短くする、このFunctionを使う(この時はCだった)とソースをキャッチボールし、凄く力をつけた。
何人ものプログラマーにインタビューしても、1つのプログラムを2人で書くという経験は無い人が多いので、プログラマーの初期学習の必須カリキュラムとして採用してみてはどうだろか。