こんにちは @color_box です。
2017/01/27 に Repro のエンジニアの皆様と Extreme Fish Bowlを開催したので、それに関する報告をします。
Extreme Fish Bowl
Extreme Fish Bowlとは、皆に見られながらペアプログラミングをするというものです。 その場にいる全員の中でペアを組み、1台のマシンを使ってかわるがわるペアプログラミングをしていきます。 ペアプログラミングをしていない他の参加者は、観戦にまわります。
5分を1ターンとして、ターン終了時にドライバーが抜け、ナビゲータがドライバになります、ナビゲータは他の参加者の中から一人入って次のターンに進みます。 そうやってナビゲータとドライバを一人ずつ交代しながらプログラミングを進めていくのがExtreme Fish Bowlです。
プログラミングの対象となるお題は事前に与えられており、お題を解くようなコードを全員で考えていきます。 作業風景は常にスクリーンに映し出されており、会場にいる全員に共有されます。 もちろん手を動かしていない他の参加者も、ペアプログラミングをしていえる二人に温かい野次のような声援を飛ばして構いません。
当日のコード
当日書かれたコードは下記リポジトリにおいてあります。 github.com
寿司とビール
寿司とビールが当然振る舞われます。
当日の様子
- アルコールが入っている
- 周りから声援が飛んでくる
- 手を動かせる時間が5分と短い
という条件が実装を難しくさせます。 5分は長いようで短いため、声援に気を取られているとあっという間に終わります。 声援に気を取られずに自分の書きたいコードを書くのがコツなようですが、あまり変なコードを書くと次のターンで即修正されたりもします。
お題
ちなみにお題は下記のようなものでした。
lv1 麻雀の上がりを判定する 役無しで上がってるかどうか 14牌で順子、刻子の組み合わせが4組と頭の2牌が適切か lv1.1 字牌あり lv2 麻雀の役を判定する。 lv3 翻数を判定する。
当日は2時間ほどをかけてlv1を実装するところまで進みました。
参加しての所感
常日頃からペアプログラミングしているというわけではないため、色んな人とペアプログラミングするのは新鮮な体験でした。 また、自分の考えを声援として飛ばすため、手を動かしている二人だけではなくその場にいる全員の考え方に触れられます。 そのように行われる議論や集合知的に駆動するプログラミングが非常に楽しかったです。
一人でやればそれほど時間もかからないのでしょうが、その場にいる全員が断片的に作業をするため、思うように進みません。 アルコールも入っているのでなおさらです。 そういったもどかしさも普段一人でプログラミングをやっている時は味わえないものでした。
個人的には、「牌の集合」を表現するための変数hais
のhaises
への変更が失敗でした。
次のターンで『haises
は「牌の集合の集合」である』という誤解を生んでしまい、改めて名前付けはは重要だと感じた次第です。
時間がないからと言って名前付けを適当にしてはいけません。
非常に楽しめた会でした。 機会があれば是非もう一度やりたいものです。
Repro さん、ありがとうございました!