閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

ペアプログラミング

id:ajiyoshi:20050806:p1 より。

ひとたびフロー状態になると、それを維持するのは難しくない。私の一日の多くはこんな感じだ: (1) 仕事にとりかかる。(2) emailをチェックしたり、Webを見たり、そのほかのことをする。(3) 仕事に取りかかる前にランチを取ったほうがいいと判断する。(4) ランチから戻る。(5) emailをチェックしたり、Webを見たり、そのほかのことをする。(6) いい加減はじめたほうがいいと心を決める。(7) emailをチェックしたり、Webを見たり、そのほかのことをする。(8) 本当に始めなきゃいけないと、再び決心する。(9) くそエディタを立ち上げる。(10) ノンストップでコードを書いていると、いつのまにか午後7:30になっている。

まるで自分の一日だ。しかし自分はもう少し小刻みに仕事はしているから、まだまだ未熟と言うことか(違)。

最近は Web を見ることが当たり前のようになってしまっていて、「そろそろ仕事をしよう」なんて思ってコーディングを始めるために左手をキーボードの上に持っていくのと同時に、なぜか右手が抑えているマウスによって Firefox がアクティブにされはてなツールバーの「A」ボタンを押してしまったりする。

恐ろしいことにこれが全て無意識のうちに行われているということ。頭では「よーしパパデバッグしちゃうぞー」なんて考えて動き出したのにも関わらず、なぜか目の前にははてなアンテナが表示されていて、そして次の瞬間に、更新をキャッチしていないことに落胆してしまう自分が居る。ちぇっ、暇潰しできないじゃないか……。そしてはっとする。何をやっているんだ、自分は!

  • ペアで作業を行うため仕事以外の事は一切できない(一人で作業しているとついついメールをチェックしたりウェブを見たりしてしまいます)
  • 「これはあとからちゃんと作るから今は適当に作っておこう」という「とりあえず」なプログラムができにくく、プログラムの品質が上がる(「とりあえず」を放っておくとどんどんバグができてしまい、最終的な効率を大きく下げてしまいます)
  • 作業者間のノウハウが共有され、スキル向上につながる(特に新人教育時には有効です)

以前ペアプログラミングというわけではないけれど、人にものを教える時に後ろでつきっきりでいたことがありましたが、確かに途中でさぼったりして止まることがなく進めることができたので、実感として一番目にあげられているものの効果はあると思えます。

自分はまだペアプログラミングそのものを経験したことはないので、一人一人でやるよりも効率が本当に良いのか、まではわからないのですが、個人的な興味としてはやってみたいという思いもあったりして、 XP を薦めるならこれも推していった方が良いのかな、と思っても、いま挙げた懸念を上の人はもっと強く持つのだろうし、まず通りはしないのだろうなぁ。

おそらくそういうことなのだ。従って、ペアプロで作業することを(技術者出身でない)CEOに納得させることは不可能に近いくらい困難であることが分かる。そのためには、自分が70%遊んでいることを自供するか、さもなければ相当トリッキーな手段を使うかしなければならないからだ。

今の職場だと、自白したところで「じゃあその 70% をそれぞれちゃんと仕事に回せば 140% 稼げるね」となる罠。