7/31、大森のniftyで開催された「TDD Boot Camp Tokyo 1.6」に参加してきた。

TDDとは「Test Driven Development」、つまり「テスト駆動開発」のこと。それをBoot Campになぞらえて、講演とワークショップで1日みっちり叩き込まれる、という硬派なイベントがTDD Boot Camp (TDDBC)だ。

2009年に第1回が開催されて以来徐々に注目を集め、7/9に行われた会では定員36人に100人以上が殺到する、という大騒ぎになった。私もかねてから参加したいと思っていたので、今回もぐりこむことができてラッキーだった。

講演

午前中とワークショップ終了後の前後半構成で、TDDの伝道師こと和田卓人氏(@t_wada)によるセッションが行われた。

このスライドは先日福岡で行われたときのもので、今回はこれに若干内容を追加したスライドでのセッションだった。このまま増えると100枚超えるな、という余計な心配がよぎる。

セッション中は例によって聞きながらtwitter実況を行っていた。togetterにまとめられているので参照されたい。

一番グッとくるのは「TDDは個人のスキル。絶望の底にいても、孤立無援でも、ひとりから始められる。」という言葉。まず自分から、自分のコードから変革していこう、という姿勢は、いつだって忘れてはいけないものだろう。

ワークショップ

午後は参加者同士がペアを組んでのワークショップ。あらかじめ設定されたお題を「ペアプロ」かつ「TDD」で実装していく。ネタバレになるような気がするので、詳細の説明は避ける。興味があってネタバレ上等の方は、記事の最後にgithubへのリンクを記載するので参照されたい。

前半は@naitohさんとペアを組んで実装。RSpecだけどxUnitっぽい平易な書き方をして、順調に実装を進めた。メソッド名の付け方とか性格が出て面白い。Ruby 1.8系は「IndexError」はあっても「KeyError」はない、というのが発見だった。

Ruby組テーブルの向かい側では、日本Rubyの会とyokohama.rbから来た二人の高橋さんが「チーム高橋」を結成していた。すごい光景ではあった。

後半はペアの組み替えが行われ、TAの@ukstudioさんと一緒に実装。…えっ、ゆーけーさん?なんとゆー贅沢な相方。私はASCII配列に苦戦したこともあり、すっかり借りてきた猫状態だった。RSpec「らしい」書き方を間近で体験でき、とても勉強になった。

クロージング

前半のラストと後半終了後はそれぞれコードレビューとふりかえり。苦戦したところ、仕様の解釈、テストの粒度や密度など、いろんな視点を感じることができたのが大きな収穫。和田さんがセッションで話していた「同一の問題を複数のチームで解決するのを仕事で体験することはまずない(無駄だから)。他人の考え方に触れることができるのがTDDBCの価値。」という言葉の意味を実感できた。

セッション枠をtwitter実況していたら、なんと「本日のt_wada賞」をいただくことになってしまった。ほとんど自分用のメモを垂れ流しているだけなのに…。ありがとうございました。副賞として「データベース・リファクタリング」をいただいたので、レガシーに立ち向かう武器が増えたのも大きな収穫。

家庭の事情で懇親会は申し込まなかったのだが、事情が再逆転したので参加可能になった。ところが参加枠の残りはあと1つ。争奪戦のジャンケンに見事敗れ、そのまま帰宅したのだった。駅までの道すがら、高橋会長とお話できた、というボーナスはついたのだけれども。

スタッフの皆さん、講師の和田さん、ありがとうございました。参加してた同僚と「社内でやるしかない!」と盛り上がった(そして昨日(8/5)開催した)ので、受け取ったものをいろんなところに広げていきたいと思います。

TDD Boot Camp 東京 1.6 #tddbc on Zusaar

http://www.zusaar.com/event/agZ6dXNhYXJyDQsSBUV2ZW50GPGlAww

TDD Boot Camp(TDDBC) – TDDBC

http://devtesting.jp/tddbc/

Togetter – 「TDD Boot Camp 東京 1.6 #tddbc」

http://togetter.com/li/168958

和田さんのセッションで紹介されていた関連書籍など。


index at XUnitPatterns.com

http://xunitpatterns.com/

xUnit Test Patterns(xUTP)読書会 – FrontPage

http://www.fieldnotes.jp/xutp/

Growing Object-Oriented Software, Guided by Tests(goos)読書会 – FrontPage

http://devtesting.jp/goos/

Twitter / @t_wada: 技術書の「写経」の方法。

http://twitter.com/#!/t_wada/status/9000231741

tddbc16_kwappa at master from kwappa/tddbc – GitHub

https://github.com/kwappa/tddbc/tree/master/tddbc16_kwappa