TDD Boot Camp 横浜に行ってきました!
昨日、横浜で行われた「TCC Boot Camp 横浜」に行ってきたので、そこでの感想などを書いてみようと思います。
基調講演
やっとむさん(@yattom)による基調講演でTDDBCがスタート。
基調講演のスライドは http://www.slideshare.net/yattom/tddbc3rd にあるのですが、その中でも個人的には、
- TDDのサイクル(Red→Green→Refactoring)を小さく速く回す。
- 心の平穏のためにテストを書く。
あたりが印象に残りました。
サイクルを小さく回す
この「サイクルを小さく回す」というのはデモの中などでもかなり強調されていて、日頃、どうしてもサイクルを大きくして回しがちな自分には結構刺さりました。
サイクルを小さく保つには
- メソッドを小さくする
- 簡単なことから始める
- 一度に複数のことをしない
といったことが重要になってくるのかなと思います。
心の平穏のためのテスト
自分がTDDを始めたとき、最大のモチベーションは「開発効率」とか「良い設計」のような高い意識ではなく、ごくごく単純に「バグ怖い」でした*1。
その点、「TDDの目的は健康」「不安をテストする」というのはかなり納得がいくというか、動機に対する裏付けのようなものを得られて嬉しかったです。
昼食とグリーンバンド
基調講演後、昼食になりました。*2
昼食時にグリーンバンドの実費配布があったので買ってみました。
己を律するグリーンバンド! #TDDBC pic.twitter.com/p0OcTNQLZV
— xxxcaqui (@xxxcaqui) October 5, 2013
グリーンバンドには「acts_as_professional」と書かれています。
プロならテストを書けってことですね。
参加者の大半がこれを着けた状態で午後のペアプロに臨んでました。
ペアプログラミングによるTDD実践
午後からは言語別に別れて、ペアプロをしながらTDDを実践していきました。
僕はRubyで参加し、@m2agucさんとペアになりました。
TDD
TDD自体は「サイクルを小さく回す」という点以外は、普段自分が行っているTDDと大きな違いがなかったので、自己流のTDDもそんなに間違ってはいなかったということがわかって安心できました。
これからはサイクルを小さく保つことに注意しながらTDDを続けていこうと思います。
ペアプロ
一方、ペアプロは初めてだったので、結構緊張して臨みました。
というか、「足を引っ張ったら……」とか「どうやってコミュニケーションを取れば……」とか考えて結構怖かったんですが、やってみるとすぐに夢中になってそんなことは忘れてました*3。
ペアプロをやっていると、
- 「この部分、もう少し綺麗に書けないですかねー」「こんな感じとかどうっすか?」
- 「あ、そこはこのメソッド使えば楽ですよ」「そんなメソッドあったんですか!」
みたいなことが結構あって、カジュアルに相談できるたり知識を共有できたりするのが良かったです。
そして懇親会へ
TDDの実践後は懇親会がありました。
懇親会で行われたLTではTDDと言いつつも、徐々に各LTerの宗教(GroovyやVimなど)を布教するといった様相を呈しかなりカオスにw
#tddbc ビアバッシュ懇親会のLTがカオス過ぎて超たのしい
— YASUI Tsutomu (@yattom) October 5, 2013
あと、@joker1007さんのLTを聞いて、Vim力上げないといけないと思いました。
TDDBCのスケーラビリティについて
冒頭でも書きましたが、今回の基調講演はいつもの@t_wadaさんではなく、@yattomさんによるものでした。
僕も申し込みをしたときからちょっと気になっていたのですが、これはTDDBCのスケーラビリティを考えた結果とのことです。
- TDDをもっと広めていくためにはTDDBCをスケールさせていかないといけない。
- 基調講演を@t_wadaさんに依存している限り、TDDBCがスケールしない。
- @t_wadaさん以外にも基調講演をできる人が必要。
これは僕自身も参加前から気になっていたことで、今回の参加に至るまでの間に
- TDDBCに参加してみたい。
- しかし、近所でなかなか開催されない。
- ぐぬぬ。
という期間が結構ありました。
今回のTDDBCにしても、募集枠は追加枠も含めて全部埋まった上でキャンセル待ちが出ていましたし、Twitterを見ていると
くそう、 #tddbc 今日あったのか。参加してみたいとこのひとつ。アンテナ低いなぁ自分。
— たかはし (@bainarian) October 5, 2013
みたいなツイートもあったので、TDDBCのスケールというのは重要なんだと思いました。
じゃあ、どうするの?
TDDBCをスケールさせていくためには、TAの人数も増やさないといけないので、
「TAにしてください! 僕をこのTDDBCのTAにしてください! 」
「何故ここにいる?」
「僕は、僕は
とか言えればカッコいい(?)んですが、TAはちょっと技術的にアレなので、「懇親会のビールを買いに行く係」とか「KPTの模造紙を作る係」とかで参加させて頂けるなら参加してみたいと思います。
まとめ
ダラダラと書いてしまいましたが、
expect( 俺.acts_as_profesional? ).to be_true
expected: true value
but: false
これをGreenにしていかないとダメってことですね。