演習
デモに続いて演習に移りました。演習は、その1、その2と二回行われ、一回ごとの演習の後には、各チームのコードレビュー大会というスケジュールでした。
TDDBC仙台では、東北初開催であることなどを踏まえて、ペアプロではなく、全面的に乱取り形式が採用されていました。乱取り形式とは、3、4人でチームを組み、チーム内でメンバー交代しながらペアプロをぐるぐるまわす方式だそうです。
メリットとして、普通のペアプロでは初心者同士が組んだりした場合に一歩も進めなくなる可能性が出てきますが、各チームにリードできる人を入れることによって、実装面でのつまりを減らすことができるそうです。
短所としては、人数が増えることによって、意志決定のスピードはどうしても遅くなる点が上げられるそうです。
事前のチーム分けにより、チームは合計で9つ作成されていました。内訳は、Javaが5チームともっとも多かったようですが、Scala、C#、Ruby、PHPチームも作られ、言語のバラエティに富んだチーム構成となりました。
一回目の演習とレビュー
和田さんより、一回目の演習の開発テーマが発表されました。
お題は「LRU方式で、最も使われていないキーに紐づくデータを追い出すようなマップを実装する。特定のキーに対して値を設定/取得された場合に使われたとみなす」でした。
各チーム、お題のクリアを目指して早速とりかかりました。
環境に手間取るチームや、わざわざRubyを選択して集まっている人達なので、すんなりいくだろうと思われていたRubyチームが思わぬ苦戦をするなど、興味深い滑り出しとなりました。
紙に書き出した仕様を手に議論するチーム、飛び入りで参加する方が出たチームなど、非常に熱のこもった演習となっていました。白熱したまま、1時間30分の演習時間はあっという間に過ぎて、一回目のコードレビュー大会となりました。
一回目のコードレビューでは、9チームのうちから半分が選抜され、各チームが、実際にどのように実装を勧めたのか、どこにつまったのか、実際のコード、テストなどが発表されました。実は問題の中にはいくつかトラップが仕組まれていたのですが、そのトラップに気づいたチームも出た一方、別のトラップに引っかかったチームもいたり、各言語ごとの違い、文化が垣間見えたり、興味深いコードレビュー大会となりました。
