8年越しの約束を果たした話〜TDDBC in 香川の開催の思い出

先日、TDDBCが香川県高松市で開催された。その時のレポートというか、個人的な所感をつらつら書いていこうと思う。

集合写真!

TDDBCの四国開催までの長い道のり

8年間のやるやる詐欺

自分がまだ東京にいた頃、最初のTDDBC(TDD Boot Camp)が開催されたのは2009年だった。その後、自分が2010年に愛媛に引っ越してきて、Agile459を立ち上げて活動しながら、いつか四国でもTDDBCを開催してt-wadaを呼ぶよ、と本人にも伝えていた。

しかし、他の地域でTDDBCが何度も開催されたにも関わらず、四国では一度も開催されず、はや8年の月日が流れてしまっていた。途中、CodeRetreatを@haradakiroの助力があって2回ほど開催できたものの、TDDBCは開催できずじまいだった。開催できない原因は何より自分にTDDBCを開催する情熱が足りていないのと、オーガナイザーが見つからないという点だった。

和田さんとは、TDDという名前がなかった頃から、まさーるさんのユニットテストの記事を読み、実践し、意見交換をしていた仲間として、四国に呼べておらず「やるやる詐欺」を続けていて申し訳ないという気持ちをずっと持っていた。

@kobatomo3Hが動く!

しかし、今回は、香川の小林さん(@kobatomo3H)が発起人となり、その情熱で多くの人を巻き込み引っ張ってくれて開催にこぎつけた。

小林さんは、Agile459の発足初期から、わざわざ香川から松山にまで来てくれて、何度も勉強会・イベントを開催してきた仲間だ。昨年はAgileJapanのオーガナイザーもこなしAgile459のみならず、様々なコミュニティを引っ張っている人物だ。そんな彼が@t_wadaにコンタクトをとり、今回のTDDBCに必要な準備をすべて動き駆動してくれた。

そうそう、こういう情熱が何かを広めたり、人を巻き込んだりするのに必要なんだ!!

TDDBCが始まった!

@t_wadaが吠える!

自身のSNSのIDの違い・面倒な理由を説明(お約束)

まず午前中は和田さんのTDDに関する講演。歴史の話、黄金の回転の話、どれも聞き慣れた内容だけど、よく考えたら和田さんの話聞くのって2011年にオブラブで一緒に登壇して以来じゃないだろうか?

多分、久しぶりに聞く話だし、初めて聞くことも多いハズなんだけどすっと入ってくるのは同時代を生きてきたからなのだろうなぁ。(ああ、昨年の『健全なビジネスの成長のためには健全なコードが必要だ』対談で話を聞いてたからかな?)もちろん、power-assertの話などは初めて聞くのだが、OSS作者としても活躍している話はとても刺激的だった。

一つ面白いな、と思ったのは、TDDは開発者のためのもので、品質保証のためのテストにも進化できる、というくだり。とても現実的だし、開発者とテスターの「テスト」という言葉を取り巻く争いを回避し、互いをリスペクトして高みに行くための道筋だと感じた。さすが品質保証の分野の方々と交流しながらテスト駆動開発をここまで引っ張ってきただけのことはあるなぁ。

TDDを回す!!ペアで回す!!

みなペアプロ中。

TAは30代まで!

TAとして参加したので(今回はPython担当)、行きのバスの中で、はじめて(!)お題のSemVerをすぶった。PyCharmも慣れていないので四苦八苦だったが、慣れるとPyCharmはJavaで言うところのEclipse並に凄いことがよくわかった(リファクタリング超便利)。バスの中でテストケースはそこそこに全部のお題をなんとか終えることができた。

で、TAのお仕事になるのだが、いきなり難点があった。それはペアの後ろからだと字が小さくて見えないよ!!ということ。後ろに立って画面を見ても小さすぎて何を書いてるのかが見えない。屈んで近づいて目を凝らしてやっと何を書いているのかが見える。こんな状態でTAなんてつらすぎる!!ということで、TAは30代までというのがよくわかったのでしたw

PyCharmはアサーション駆動のTDDが可能

PyCharmの場合は、Eclipseのように、書いているメソッドがない場合は作れるし、使おうとしたクラスがなかったら作れるので、完全にアサーション駆動(=assertionから書いていって、足りないコードを追記していく)でできるのがよい。最初は同じファイルの中でクラス定義して、テストして、ある程度できたら、外部ファイルにリファクタリングしてMoveする、という「プロダクトコードハッチングパターン」 で進めると、ファイル切替のオーバーヘッドもなくTDDできる。

ペアプロは体験してやったはじめてわかるもの

ペアプロに慣れていない人が大半だったので、かなり苦戦していた模様だったが、最初はこんなものだろう。あるペアが、常にやるべきことを独り言として声を出して読み上げていたのが印象的だった。

和田さんも自分も、完全ペアプロでコードを一日中書く体験を実プロジェクトでやったことがあるので、ペアプロがどれだけ疲れるか、集中するか、ペアのコードについての認識を一致させるか、プロダクトの品質に寄与するかがよくわかる。しかし体験したことがない人は、想像すらできないし、説明したところでまったくピンとこないだろう。

なので、こういう機会で体験しておく、あるいは、自分で業務と別の機会で試しておく(=素振りする)ことは、頭でわかったつもりになるのではなく、身体でわかる(=身体知)という意味で非常に重要だ。

人と人とのつながりに感謝

和田さん、小林さんと記念にぱちり

TDDBCを開催するまで8年かかってしまったけども、結果的にはこれでよかったとも思う。たとえ、2010年当初にTDDBCを勢いで開催したとしても、TDDが四国でそれほど認知されておらず、自分も繋がりがなく、人も今回ほど集まらなかっただろう。何より勢いで自分がオーガナイザーをやってしまうと、それ以降がおそらく続かなかっただろうと思う。

開催が遅れに遅れたおかげで、小林さんというオーガナイザーできる人が育ち、情熱で人を動かすことができた。8年の間に和田さんの尽力もあり、TDDについての認知もこの数年で確実に広まってきたと思う。

人や地域が変わるのには時間がかかるし、時代の流れというものもある。勢いだけでは駄目だし、逆に機が熟した時に乗らないと、波に乗り遅れてしまう。

知り合いがゼロの状態で四国にやってきたけど、一人一人とのつながりで、こうやって東京の友人を呼んで四国でTDDBCを開催できたこと、それを小林さん、そしてTAとして集まった愛媛、香川、岡山のTAの皆さんが実現してくれたことに感謝しかありません。僕のやるやる詐欺を解消してくれてありがとうございました!!

Agile Japan in 高知は9/8

9/8のAgileJapan高知開催を告知する佐藤さん

最後にお知らせ、今年の9/8にAgileJapan in 高知を開催します。まだ本家サイトには情報は上がってませんが、すでに連絡済です。9/8はXP祭りとかぶりますが、今年はXP祭りはお休みして、こっちに専念します。

高知でAgile Japanを開催することで、Agile459名義で、四国四県すべてで、イベント・AgileJapanを開催することになります。およそ8年越しの達成(見込み)になります。この点については、AgileJapan終わったら一度ふりかえりたい。(今はまだ未達なのでお知らせのみ)

高知といえば沢マン、がしかし。。。

https://ja.m.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Sawada_Mansion.jpg

高知といえば。。。そう、沢田マンション(沢マン)ですよね!今年のイベントでは沢マンはフィーチャしませんよ!!。ただ、沢マンを一度見学したい東京の人、XP祭りじゃなくてこっちに来てくれてもいいんだよ?

沢田マンションとアジャイルやパタン・ランゲージの関係については、Wikiみたいなマンション 沢田マンションとか、沢マンに学ぶいきいきなどを見てください。

沢マンは、AgileJapanとは別の機会に、高知で「沢マン&アジャイル&パタン・ランゲージ」みたいなテーマでイベントをやりたいと思ってる。そうしたら、東京から一杯人が来てくれるかな!?

グローバルから学び、ローカルで行動する人もっと増えろ!!

最後に、和田さんの講演の中で出てきた、Kent Beck, Ron Jeffries, Steeve Freeman, Nat Pryce, Bob Martinなどの個人的に馴染みのある海外のエンジニアの名前を聞いて参加者の皆はどう受け止めただろうか? 「よくわからない」「へー、ふーん、そうなんだー」「(反応なし。。。)」「そうそう、そうだよねー」いろいろな反応があるだろう。

四国はどうしても東京と比べて情報が遅れている印象がある。しかし、本当は、ネット経由で、国内だけでなく世界の先端のエンジニアが何をやっているか、どのようにやっているか、について情報を入手し、タイムラグなく学ぶことができるはずだ。東京は確かに人口密度は高いし、エッジなことをやってる人が圧倒的に集まっている。しかし、地方に住んでいても、東京を飛び越して、いきなりグローバルの先端の知識を学び、自分で実践して技術を身につけることは可能だ。そういうことにトライする人が一人でも増えてほしいと願う。