初春オブラブミニミニイベント「ペアプロワークショップ」に行ってきました

「他人に自分のコードを見られるなんて恥ずかしい///」

他人に自分の書いたコードを見られると胃に穴が空きそうになる@mahmです。こんにちは!

「そんなお前がペアプロなんかして大丈夫なのかね?」 「無理です」

とはいえ、初めてのペアプロは何だか夢が広がりんぐな感じがしました。人とあーだこーだ言いながらコードを書くのも、意外と楽しいですね。楽しい上に成長できる気がします。そんな訳で、はじめてのペアプロで学んだことをエントリにとりとめもなく書き留めておきたいと思います。

あ、ペアプロとは何ぞや、という話は腐るほどWebに転がっていると思いますので、ここにWikipediaのリンクを置いておきますね!

ペアプログラミング(wikipedia)

初春オブラブミニミニイベント「ペアプロワークショップ」

1. 身の程を知る良い機会になる

一般的にプログラマが身の程を知る機会としてコードレビューの存在が知られていますが、これは一種の吊るし上げに近いものなので、人によっては効果的にはたらかないかも知れません。

その点ペアプロなら完成品を吊るし上げられるのではなく、書きながら細かいジャブが飛ぶだけなので安心ですね!

筆者はどちらかというと見栄っぱりでええカッコしいな人間ですので、細かいジャブでも結構苦しいのですが、ペアプロという「2人で力を合わせて課題を解決しよう!」というアクティビティなら、なんとか前向きに頑張れそうです。

2. コードを書く前にざっくりとした設計は2人で共有した方が良いかも

ペアプログラミングというと、ドライバーという「独り言をつぶやきながらコードを書き続ける役割」があるので、はじめるぞー!と言ったらいきなりコーディングをはじめなければいけない気持ちになります(なりました)が、ちょっと落ち着いてざっくりとした設計ぐらいは共有すべきです。

と、失敗談的に語っていますが、ワークショップの最初に「やることはちゃんとタスク化してくださいね」と言われていたので、単によく理解していなかっただけなのだと思います。。やってみると意外に難しいので、ペアプロ慣れというのも必要ですね。

3. 交代の目安はあらかじめ決めておこう

交代タイミングには以下のようなものがあると思います。

  • 25分(ポモドーロタイマー)で交代する。
  • 1スペック実装毎に交代する。
  • あらかじめタスク化した単位で交代する。

とはいえ、最初にペアで交代タイミングを決めなきゃダメですね(反省)。決めてもアツくなって交代するのを忘れますが、落ち着くことも重要です。

4. 実際にやるなら、2台のPCの方が良い

ペアプロは基本的に2人で1台のPCを使うらしいのですが、実際問題非常に難しいです。開発者とは一般的に開発環境やエディタに異常なこだわりを持つ生き物なので、人の環境でコーディングなぞ出来るはずもありません。慣れた環境が一番です。

という訳で、実際はバージョン管理ツールなんかを使ってコードを2台のPCで共有しつつ、ペアプロするのが良いでしょう。実際の現場でもそんな風にやっているらしいです。

ワークショップではvim使いでペアを組んだのですが、人のvimというのは想像を絶する魔境ですので、ペアプロ環境には向かないと実感しました。

最後に

またやってみたいなぁ、ペアプロ。ペアを組んでくださったやきとりいさん、ありがとうございました。

ところで、ペアプロの課題はボーリングのスコア計算問題だったのですが、悲しいことに時間内に終わらせることができませんでした。FizzBuzzの次にボーリングスコア計算問題がトレンドになるように思われます。

それでは皆様、have a nice pair-programming!