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

月刊オブラブを見ていたら、初春オブラブミニミニイベント「ペアプロワークショップ」ってものが開催されるということなので、行ってきました。

はじめに

そもそも「ペアプロ」って言葉は知っていたんだけど、会社では「できないよなぁ」と思っていたので、「物は試し」な感じで。

さて、イベント前の「ペアプロ」のイメージは、

  • 二人でひとつのマシンを使ってコーディングする
  • コーディングスタイルとか環境とかが合わないとつらそうだな。タブ派とかスペース派とかから始まって・・・
  • 二人で雑談はじめてしまって、止まらなくね?

という漠然としたイメージ。ただ、こういうのは実際にやってみないといけないよね。

イントロ

イントロは、ドラ娘こと@ngtykさん。マジ美人!オブラブの紹介とか、iPhoneゲーム「REGENCY King's Valley」の紹介とか(本筋関係なし)。とりあえず、iPhoneゲームはその場で購入しておきました。

ペアプロとは

ここで安井さん(id:yach@yattomさん)にバトンタッチ。安井さんってどっかで聞いたなぁ・・・と思っていたら、「アジャイルな見積りと計画づくり」の訳者さんだったのね。

アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~

アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~

その安井さんが「ペアプロとは?」ということで説明。概ね以下のようなことをお話頂きました。

  • ペアプロのメリットとして、集中しやすくなる、よりよい実装を議論できる、相談できる、全体像を見失わない、コードの共有、知識・ノウハウを交換できる
  • いろんな出発点があることで、視野が広がるというのもペアプロのメリット
  • 練習しよう。ポイントは、「自分に自信を持ち、相手を尊重する。」「声を出す」「気軽に頻繁に交代する」
  • タスクの見える化
  • 暴走を止め易いのがペアプロのメリット

軽くお話いただいた後で早速実践。

実践!

実践編は「ボーリングのスコア計算」をやってみることに。例えば次のような問題をペアプロでやってみる。

ボーリングのスコアを計算してください。ここでは、問題を簡単にするためにスペアとストライクの計算はしなくていいものとします。
プログラムは、倒したピンの数を配列で受け取って、合計スコアを返すメソッドとして実装してください。

はじめてのペアプロということで、いろいろ引っかかる。例えば、

  • 環境は?Windowsしか使ったことがないのでMacはちょっと・・・
  • テストファースト?それとも先に実装する派?
  • 変数名は?ローマ字でいいですか?
  • クラス構造は考えます?
  • ここって共有化したほうがいいんじゃない?

ということが引っかかる。あんまり本質的じゃないけど、「そうか、こういう所で引っかかる人も多いのね。」ということでたしかに視野が広がったような気がする。

コーディング時間は1時間半。途中5分ぐらい休憩を挟んでドライバとナビゲータをそれぞれやったんだけど、どちらにしてもぐったり疲れた・・・

振り返り

振り返りとして、自分が感じたことを上げて発表することに。僕らのチームでは

  • 環境大事!それぞれが使える環境でないとダメじゃね?
  • 口に出すと頭の中が整理されていい感じ
  • タスクごとにドライバとナビゲータを交代するといいかも

という意見が出てました。


ビアバッシュ

ビアバッシュでは、いろんな話が出たのですが、中でもyokohama.rbが話題に。

なんだか、ハイカラなイメージが付いているようなのですが、みんなフレンドリーですし、和室でやっていたりとまったりといい集まりですよ。ぜひとも参加してください。

後日談

とりあえず、同じ問題をひとりで解いてみた。別記事にしてみました。