読者です 読者をやめる 読者になる 読者になる

xxxcaqui.log

ツッコミお待ちしています

TDD Boot Camp 横浜に行ってきました!

昨日、横浜で行われた「TCC Boot Camp 横浜」に行ってきたので、そこでの感想などを書いてみようと思います。

基調講演

やっとむさん(@yattom)による基調講演でTDDBCがスタート。

基調講演のスライドは http://www.slideshare.net/yattom/tddbc3rd にあるのですが、その中でも個人的には、

  • TDDのサイクル(RedGreenRefactoring)を小さく速く回す。
  • 心の平穏のためにテストを書く。

あたりが印象に残りました。

サイクルを小さく回す

この「サイクルを小さく回す」というのはデモの中などでもかなり強調されていて、日頃、どうしてもサイクルを大きくして回しがちな自分には結構刺さりました。

サイクルを小さく保つには

  • メソッドを小さくする
  • 簡単なことから始める
  • 一度に複数のことをしない

といったことが重要になってくるのかなと思います。

心の平穏のためのテスト

自分がTDDを始めたとき、最大のモチベーションは「開発効率」とか「良い設計」のような高い意識ではなく、ごくごく単純に「バグ怖い」でした*1
その点、「TDDの目的は健康」「不安をテストする」というのはかなり納得がいくというか、動機に対する裏付けのようなものを得られて嬉しかったです。

昼食とグリーンバンド

基調講演後、昼食になりました。*2

昼食時にグリーンバンドの実費配布があったので買ってみました。

グリーンバンドには「acts_as_professional」と書かれています。
プロならテストを書けってことですね。

参加者の大半がこれを着けた状態で午後のペアプロに臨んでました。

ペアプログラミングによるTDD実践

午後からは言語別に別れて、ペアプロをしながらTDDを実践していきました。
僕はRubyで参加し、@m2agucさんとペアになりました。

TDD

TDD自体は「サイクルを小さく回す」という点以外は、普段自分が行っているTDDと大きな違いがなかったので、自己流のTDDもそんなに間違ってはいなかったということがわかって安心できました。
これからはサイクルを小さく保つことに注意しながらTDDを続けていこうと思います。

ペアプロ

一方、ペアプロは初めてだったので、結構緊張して臨みました。

というか、「足を引っ張ったら……」とか「どうやってコミュニケーションを取れば……」とか考えて結構怖かったんですが、やってみるとすぐに夢中になってそんなことは忘れてました*3

ペアプロをやっていると、

  • 「この部分、もう少し綺麗に書けないですかねー」「こんな感じとかどうっすか?」
  • 「あ、そこはこのメソッド使えば楽ですよ」「そんなメソッドあったんですか!」

みたいなことが結構あって、カジュアルに相談できるたり知識を共有できたりするのが良かったです。

TDDとペアプロ両方に言えること

TDDもペアプロも非常に良いものですが、やってみないとその良さがわからないと思います。少なくとも僕はそうでした。

その点、TDDBCのように実際に手を動かす勉強会というのは魅力が伝わりやすくて非常に良いと思いました。

KPT

TDD実践後、参加者それぞれがKPTを書きました。

Keepの付箋が溢れてるのがこの勉強会の良さを表していると思います。
ペアプロ楽しかった!」っていうのもかなりありました。

そして懇親会へ

TDDの実践後は懇親会がありました。
懇親会で行われたLTではTDDと言いつつも、徐々に各LTerの宗教(GroovyやVimなど)を布教するといった様相を呈しかなりカオスにw


あと、@joker1007さんのLTを聞いて、Vim力上げないといけないと思いました。

TDDBCのスケーラビリティについて

冒頭でも書きましたが、今回の基調講演はいつもの@t_wadaさんではなく、@yattomさんによるものでした。
僕も申し込みをしたときからちょっと気になっていたのですが、これはTDDBCのスケーラビリティを考えた結果とのことです。

  • TDDをもっと広めていくためにはTDDBCをスケールさせていかないといけない。
  • 基調講演を@t_wadaさんに依存している限り、TDDBCがスケールしない。
  • @t_wadaさん以外にも基調講演をできる人が必要。

これは僕自身も参加前から気になっていたことで、今回の参加に至るまでの間に

  • TDDBCに参加してみたい。
  • しかし、近所でなかなか開催されない。
  • ぐぬぬ。

という期間が結構ありました。

今回のTDDBCにしても、募集枠は追加枠も含めて全部埋まった上でキャンセル待ちが出ていましたし、Twitterを見ていると

みたいなツイートもあったので、TDDBCのスケールというのは重要なんだと思いました。

じゃあ、どうするの?

TDDBCをスケールさせていくためには、TAの人数も増やさないといけないので、

「TAにしてください! 僕をこのTDDBCのTAにしてください! 」
「何故ここにいる?」
「僕は、僕はTDDBC3rdの卒業生サードチルドレン、@xxxcaquiです!!」

とか言えればカッコいい(?)んですが、TAはちょっと技術的にアレなので、「懇親会のビールを買いに行く係」とか「KPTの模造紙を作る係」とかで参加させて頂けるなら参加してみたいと思います。

まとめ

ダラダラと書いてしまいましたが、

expect( 俺.acts_as_profesional? ).to be_true
expected: true value
but: false

これをGreenにしていかないとダメってことですね。

*1:意識高い系のモチベーションも無いわけではなかったし、TDDはその点に関しても有用だと思います。

*2:昼食の弁当・お茶がついて参加費1000円っていうのは本当にすごい。ありがとうございます。

*3:忘れてるだけで、実際には足引っ張ったりコミュニケートできてなかったりしたら、もう平謝りするしか無いですがw