TDD boot camp 横浜3rdに参加してきた。

TDD boot camp 横浜3rdに参加してきたので、そのときの様子を書いてみたいと思います。
ソースコードはこちら(https://github.com/shinjukujohnny/tddbc

まずは参加までの流れ。
開催の数日前、TDD boot camp横浜3rdが開催されることを知る。その時点で3名のキャンセル待ちとなっていたが、開催日の天気も悪そうだったので、当日キャンセルが出ると見込んで参加登録。当日の朝になってもラスト1人のキャンセル待ち状態だったけど、ひとまず家を出て会場を向かった。(今までの経験から、大抵当日キャンセルは出るし、主催者側も会場が許す限り入れてくれたりするので、参加登録して行ってしまうのが良いと思う)結果、予想通りキャンセルが出ていて、無事参加できた。

座学でTDDとは何かを学ぶ(午前)
安井力さんによる基調講演。TDDとは何かを座学で学びました。講演込みで朝からやるのはTDDBC横浜だけなのだそうです。大変勉強になりました。詳細はslideshareでご覧ください。

参加者同士でペアプロ(午後)
今回自分は、事前登録でJavaScriptを選んでTDDBC参加。準備として、自分のノートPCにnode.jsとjasmine-nodeをインストールして、サンプルのテストコード、ソースコードを用意して参加しました。最初席についた時にたまたま隣に座っていた人が同じくJavaScript、Jasmineだったので、好都合だったのですが、Jasmineのテストの回し方が違っていて、最初にそこを埋める時間が発生してしまいました。結局自分と同じ環境をペアの人に作ってもらうことで環境差異を埋めることになりました。環境は前述の自分のgithubの通り、jasmine-nodeをコマンドラインで使っています。今回はペアで組んだ人があまりJavaScriptを書けるようでは無さそうでしたので、自分がリードする形で進めました。全体としては、1時間の実装時間(もちろんTDD)の後にレビューの時間が入るという形を3度繰り返すという形で進められました。レビューは各言語のエキスパートによる容赦無いツッコミが展開され、ビビりました。今回自分はレビューの機会がありませんでしたが、次回参加の機会がある場合は気合入れて参加したいなと思いました。

参加してみた感想
普段どうしても製品コードから書いてしまいがちな自分としては、一日しっかり時間を取って業務外で焦らずTDDのステップを学べたことは価値がありました。何よりテストがあることで安全に大胆にリファクタリングができたことが良かったです。この経験はちょっとした感動でした。製品コードから書いていたらこうはいかなかったと思います。とはいえ、初めての参加でしたので、自分の悪い癖(製品コードから書きだそうとする)が出てしまった場面もありました。しかしペアプロでやっていたこともあり、途中でテスト書いてないことに気づいて戻ってテストから書きなおしたりやれたので良かったです。TDDを導入しようと思ったら、セットでペアプロも導入するのがお勧めだなと思いました。特に染み付いた習慣を矯正するのは一人では難しいので、お互いにTDDが正しく運用されているか監視し合いながら、交代しながらやるのは非常に効果的だなと思いました。