ここ数日、私はずっとペアプログラミングをしている。

ペアプログラミング自体は、これまでに何度も経験したことがある。
しかし今回の試みが今までと違うのは、
一日中、ペアプログラミングしかしないという点である。

1セット1時間半、15分の休憩を入れて、
ドライバーとナビゲーターを交互に入れ替えて毎日4セットやる。
このところ、これを何日も続けている。

こうやって、ある程度ストイックに続けてみることで、
わかってきたことがある。

それは、ペアプログラミングにはメガトン級の破壊力があるということだ。

■ 人に言えないこと
プログラマーは絶えず誘惑にさらされている。

調べ物でウェブを見たついでに何時間もネットサーフィンしてしまったり、
考えたことをメモするついでに2時間かけてブログを書いてしまったり、
仕事の用事で知人に IM したついでにしばらくだべってしまったり、
Twitter に書き込んだついでに Friends のアーカイブを読みふけってしまったり、
PC は仕事道具であると同時に遊び道具でもあるので、
納期直前かゾーン状態でもない限り、
これらの誘惑はしばしばプログラマーの集中力を奪い去る。

プログラマーは自分自身のコンディションによって
生産性に何倍もの差が出ることを知っている。
だから、テンションがピークに達するまではあえて何もしないことも多い。
このあたりの生々しい事情はジョエル・オン・ソフトウェア
「射撃しつつ前進」に詳しい。

このようなプログラマーの日常を考慮して、
実は多くの会社は20%ルールを取り入れたのと同じ状態と指摘する人もいる。

■ 見られて綺麗になる
そして、もう一つ忘れてはいけないこと。

プログラマーにはプライドがある。
自分が華麗にソフトウェアをつくりあげていく姿を人に見せたい願望がある。

だから、
プログラミングをしているシーンが誰かに見られる機会さえあれば、
誰よりも速く、誰よりも美しく、
魔法のようにキーボードの上で踊る自分の姿を見せたくてウズウズしている。

行き詰って悶々としている姿なんて見せたくない。
プログラマーとして、サプライズを与えたいんだ。

ペアプログラミングはライブコーディングよりも、
コミュニケーションがずっと繊細だ。

そこにあるのは、誰が言ったかもわからない野次のようなコメントじゃない。
時間をかけて丁寧に、見て、見られて、
プログラマーの能力も、プログラム自体も、
人に見られて磨きをかけられていく。

■ そして、ペアプログラミングが始まる
ペアプログラミングをやってみたことがある人はかなり多いのではないかと思う。
部分的にペアプログラミングを導入する場合、
その対象となるのは、例えば次のようなものだ。

・教育目的で OJT としてペアプログラミング
・一人では解決が難しい問題に対処するためにペアプログラミング
・担当パートの引継ぎのためにペアプログラミング

アプレッソでこれまでやってきたペアプログラミングも、
上のような理由で行われてきたものがほとんどだった。

つまり、これまでは、ペアプログラミングを導入する明確な理由があった。

今回の試みでわかったことは、
上記のような、いかにもペアプログラミングが有効な場合だけに
ペアプログラミングを導入するのではなく、
一日の開発作業全部にペアプログラミングを導入することに
爆発的な効果があるということだ。

新規に開発をする場合にも、
テストケースを書くときにも、
バグ修正をする場合にも、
修正内容を BTS にレポートする時にも、
一見地味で、「後は自分でやっておきます」と言いたくなるような
作業も含めて、全部ペアプログラミングで行う。

ずっと見られているから、ペアプログラミング中には
手の抜きようもなければ、気の抜きようもない。
そういう状態が長く続くと、
今まで刺激されたことのないツボをずっと刺激されているような、
独特の快感の中で開発作業を進めていくことができるようになってくる。
そして気付くと、今までよりずっと短い時間で、開発がグングンと進んでいる


関連エントリ
アプレッソのジョエル・テスト判定結果
プログラム・デザイナー宣言
諸君、私はプログラミングが好きだ




XPエクストリーム・プログラミング入門―変化を受け入れる
ケント ベック Kent Beck 長瀬 嘉秀 テクノロジックアート
ピアソンエデュケーション (2005/12)
売り上げランキング: 40183