irohiroki's blog

Ruby, Rails, and Web technologies

みなとRuby会議でペアプロしてきた

みなとRuby会議01に参加してきました。 一般的な講演の他に、ペアプロのセッションがあるという面白いRuby会議だったのですが、実はペアプロは初めてだったので気づいたことを書いてみます。 ペアプロの相手は@hibariyaさんで、僕はナビゲーターしかしなかったんですが、それでも多くのことがわかりました。

2人の役割分担は車の運転と同じ

初めての道を運転するとき、ナビがあった方が楽ですよね。 そして、コーディングでは初めてのものを実装することが多いんです。 誰かが案内してくれた方がずっと楽なはずです。

ナビゲーターは、ドライバーより多くのことを考えられます。 なぜならタイピングに脳を使ってないから。 次に何をタイプするか、近道はないか常に考えていられます。 この辺の雰囲気はXPエクストリーム・プログラミング入門に書かれていた通りでした。 (他にもコーディングの最前線で使うべき戦術が丁寧に書かれていて、おすすめの本です。)

考えるだけの時間がなくなる

「考えるだけの時間」とは、話していない、聞いていない、タイプもしていない時間です。 僕は一人でコーディングするとき比較的考え過ぎる方だと自覚していて、減らしたいと思っているんですが、ペアプロをしてれば圧倒的に少なくなりそうです。 それはもちろん、ナビゲーターが考えることを引き受けるからという理由もあるのですが、もっと重要な理由があると思います。

一人で考えてて一番ダメだと思うのは、情報が十分でない状況で複数のことを比較しているときです。 そういう時やるべきなのは、情報を得るためにどれかを選択して実行することです。 ところが同時に、手戻りをなるべく減らしたいという動機があるため、実行せずに情報を得ようとしてしまうのです。

ペアプロでは、ナビゲーターはタイプしないので、手戻りの考慮から一歩引くことができます。 一方ドライバーは、自分で決断できなくても、ナビゲーターが指示したことなら実行しやすいでしょう。 このようにペアプロならば、ナビゲーター/ドライバーのどちらであっても考える時間を減らすことになります。

人のマシンを使うのは非現実的

今日の会場はネットワークが貧弱だったため、ネットを介してソースコードを共有せずに、1台のマシンを交代で使うという方針でした。 でもそれは非現実的でした。

僕は日本語キーボードを使ってるんですが、ペアを組んだ@hibariyaさんのマシンはUSキーボードでした。 また、GNU screenのエスケープキーが違いました。 おそらくエディタの設定は更なる乖離を見せてくれたでしょうが、もう確認はしませんでした。 他人のマシンで快適にコーディングなんてできないと思います。 ペアプロするなら常にドライバーの人のマシンを2人で見るべきだと思いました。

というわけで、ナビゲーターしかしなかったものの、たくさんの気づきのあったペアプロでした。 ペアプロが向くケース、向かないケースも少しわかりました。 ペアを組んでくださった@hibariyaさん、ありがとうございました。 また、みなとRuby会議01を運営してくださったYokohama.rbのみなさん、ありがとうございました。 みなさんお疲れ様でした。

Published on 02/06/2012 at 23h32 under .

Powered by Typo – Thème Frédéric de Villamil | Photo L. Lemos