ペアプロですよ。ペアプロ。ペアプロっていうとあれですよ、2人1組みでペアになって1人がコーディング、1人が観察。 観察してる人はコーディングしてる人に対してあーだこーだ言って、より良いコードを作り上げていきます。
ペアプロについてのメリット/デメリットは各所でいろいろと説明されてるのでここでは省くとして、 僕は今、実際に業務でペアプロをやってるのでせっかくなのでそのやり方を紹介します。
準備するもの
- tmux
- vim(ターミナル上で動くテキストエディタであれば何でも…)
えっ、これだけ?んーこれだけです…
ペアプロのやり方としては、1つの画面と1つのキーボードに対して2人が張り付くという形式がよくあるかと思いますが、 僕らはtmuxのセッション共有を利用してペアプロしてます。
tmuxを使って画面を共有する
ボブとアリスで話を進めます。ボブがコーダーでアリスがナビゲーターとしましょう。
ボブの端末でtmux用ユーザーを作っておく
[bob@bobs_pc] $ adduser tmux
[bob@bobs_pc] $ passwd tmux
ボブの端末でセッションファイルを指定してtmuxを起動する。 セッションファイルはパーミッションを 777 にしておきます。
[bob@bobs_pc] $ tmux -S /tmp/tmux.shared_sock
[bob@bobs_pc] $ chmod 777 /tmp/tmux.shared_sock
アリスはボブの端末にsshでログインする
[alice@alices_pc] $ ssh tmux@bobの端末
アリスはボブの端末でセッションファイルを指定してtmuxを起動する
[tmux@bobs_pc] $ tmux -S /tmp/tmux.shared_sock attach
これでボブとアリスはキーボードとディスプレイは自分の目の前にあるものを使うことができ、 かつ画面はボブの画面を共有することができました!ペアプロをはじめます!
ペアプロをやるにあたって
僕らがペアプロをやる時はこんなことに注意したりしてます。
コーダーの人は
- 自分の頭の中を口に出しながらコーディングする
- 一人でもくもくと先に進まない
これを意識してやります。せっかくペアプロしてても、しゃべらずに黙ってもくもくと先に進めるのはもったいないです。 「どこどこをどういう風に実装していこうとしているのか」はコーダーの人が黙ってては、ナビゲータの人に全然伝わりません。 ナビゲータの人もぼけーっと画面を見つめるだけになってしまって、本当のメリットが見いだせない。。。
ナビゲータの人は
- 恐れずにヤジをいれる
- たまにキーボード奪って「こうやった方がいいよ!」ってするw
まぁ程度によりますが、ちゃんとツッコミいれましょう!見てるだけじゃ意味ないですもんね。
実際にペアプロをやってみて
ペアプロをやってきて約2ヶ月程度たってますが、僕が感じたことは
- 1人じゃない
- 楽しい
- 一人よがりなコードじゃなくなる
- なんか達成感
まず1人じゃないというのはとても心強いですね。 実装に迷って「ここはこうしたほうがいいかな、でもこっちの方がいいかも…」と、 まぁそんな重要でもないところで結構時間が過ぎたりします。あと変数とか関数の名前とかでも。 こういう時に、そばにナビゲータがいてくれて同意してくれたり、アドバイスをくれたりすることが、 どんなに心の支えになるか(笑)
全体的によく言われるペアプロの良い所を感じることができています。
楽しいことは間違いないので、機会があれば一度やってみては!?