TDDBC 仙台 the 3rd に参加しました

2013/10/12 に開催された TDDBC 仙台 the 3rd にTAとして参加しました。

TDDBC 仙台 the 3rd - TDDBC | Doorkeeper

TDDBC 仙台 the 3rd #tddbc のまとめ - Togetter

今回はデータコム株式会社さんを会場にお借りしました。ありがとうございます。

開催準備

今回は@135yshrさんがTDDBC仙台の主催に名乗りを上げて頂きました。
そして、前回の主催者である@nnasakiと私が中心メンバーとなって事前準備を進めました。

前日には仙台スタッフに加えて@t_wadaさん他、TAスタッフ(仙台以外からも!)が集まって翌日の流れの確認や、チーム分け等を実施しました。

基調講演

第一回/第二回に引き続き、今回も@t_wadaさんに基調講演をして頂きました。ありがとうございます。
今回は、裏方の作業とペアプログラミングデモの準備もあり、じっくりお話を聴けずに残念。

ペアプログラミングデモ

今年は、@leecomさんとペアプログラミングデモを行うことになりました。

昨年は@t_wadaさんとFizzBuzzを題材にペアプログラミングデモを行ったのですが、その後の演習でTDD初心者が「飲み物自動販売機」を解くには大分ギャップがあったと感じました。実際に、演習では進め方に四苦八苦するペアが散見されて、次回はもう少し工夫した方が良いと思っていました。

そう思っていた所、他会場のTDDBCで、実際の課題を使ってペアプログラミングをしていたことを知り、今年は実際の演習課題である「整数の区間」を使うことにしました。今回のTDDBCは初心者をターゲットにしていましたので、ペアプログラミングデモを見てもらい、演習で内容をそのまま追体験してもらうことで、Red-Green-Refactoring のいわゆる「黄金の回転」のリズムを掴んでもらう手助けが出来たのではないかと思います。

ペアプログラミング実習

私はJavaのTAとして参加したのですが、Javaでの参加者が4人だったということもあり、参加者の方とはペアを組まず、外からアドバイスをすることとなりました。

今回の言語別のペア数は Java x 2, C# x 1, Groovy x 2(内1組がKotlin), Python x 2, Objective-C x 1, Ruby x 1, PHP x 1 と非常に多彩な顔ぶれとなりました。
また、1台のPCでペアプログラミングをするのではなく、GitHub等でコードを共有してしたペアも何組か見られましたね。

演習の課題について

演習の課題は「区間」をテーマにすることは仙台メンバ全員で決めたのですが、詳細については私が担当することとなり、前日のスタッフ打ち合わせ直前まで頭を抱えながら作成しました。

課題「整数の区間」は、以下に公開しています。
前日には@t_wadaさんからアドバイスを頂き、お題の順番変更などの調整を行いました。
また、本番では課題2までしか公開しませんでしたが、課題8まであります。

TDD Boot Camp(TDDBC) - TDDBC仙台03/課題

また、用語集は@nnasakiさんに作成して頂きました。

TDD Boot Camp(TDDBC) - TDDBC仙台03/課題用語集

実際の演習では、最初提示されるのは課題1だけで、課題1を解くと課題2、課題2を解くと課題3が提示される形式を取りました。
新しい課題が提示されると、それまで作成したコードに修正が必要となるような構成となっており、リファクタリングが促進されるような仕掛けになっています。
個人的に今回のこの試みはとても上手く行ったのではないかと思いました。

反省点としては以下の通りです。

  • 仕様に関する質問が何度があったので、もう少し誤解がない記述が必要かな
  • 結果課題2までしか進まなかったので、課題1/課題2のボリュームをもう少し減らして、課題3(閉区間と開区間を同時に扱う)へ早めに到達するように調整したほうが良さそう

(課題については、別エントリでもう少し詳しく書こうかな・・)

コードレビュー

全7種類の言語から1組ずつ前に出てもらい、恒例のコードレビューです。
今回は比較的言語に依存しないお題だったため、各言語間でプロダクトコードに大きな違いはなく、どちらかというとテスティングフレームワークの違いがよくわかる
コードレビューとなりました。普段Java以外に触れることが少ないため、とても参考になりました。

張り切って質問等していたら、以下のようなお褒めの言葉(?)を頂き、とりあえずTAとしての役割は果たしたということで。

懇親会

本編終了後は、そのままビアバッシュへ突入です。殆どの方が参加して、大変盛り上がりました。
LT大会では、課題作成の裏側等を話しました。

最後に

今年のTDDBCも最初から最後まで熱気にあふれていましたね。運営側としてはキャンセル0というのも素晴らしい。

また、仙台発のお題を作るという個人的な裏テーマを達成出来たのと、何人かの方からお題を褒めて頂いたので満足です。

来年もTDDBC仙台が開催されると良いですね。今回関わって下さった皆さん、ありがとうございました。