goos 読書会への誘い

書いた人
@tomy_kaira goos 勉強会皆勤ですが、ただの参加者です。

goos とはなにか?

goos 本とは、Growing Object-Oriented Software Guided by Testsという、テストファーストでオブジェクト指向なソフトウェア開発の本です。

和田さんの TDDBC のスライド等で紹介されているので、ご存知の方も多いかもしれません。テストするのが難しいが、実際に作るソフトウェアでは必須の技術(GUI、通信など)に対して、具体的な手法を学ぶことができます。テスト駆動開発入門で身につけたユニットテストのその先に進むことができます。

goos 読書会とは?

goos 本は、鈍器と呼ばれる xUTP ほどではないですが、内容のしっかりした洋書であり、一人で読みすすめるのにはかなりの忍耐とやる気が必要です。とくに Part I や Part Ⅱ のテストやオブジェクト指向に関して著者のさまざまな見解が展開されていて、設計などに関する知識を要求されます。

また、Part Ⅲ ではサンプルアプリケーションを通じて著者の考えかたや、やりかたが示されますが、この作業環境を構築するのに、テストツールを自分でビルドする必要があったりと、いくつもハードルがあります。

そんなあなたをサポートするのが goos 勉強会です。

goos 読書会は、大中さんが幹事をされている、xUTP 読書会の後続の勉強会です。日本のテスト界の大御所から学生まで、多様なメンバーが一緒に goos 本を読み、教えあいながら議論にはげんでいます。

どんなスタイルなの?

最近はチームラボさんのオフィスをお借りして、日曜や祝日に開催しています。

例: 第五回(11/23)の ATND

だいたい 13:00 くらいに集まり、各自名札を装備したり、レッドブルを飲んだりと準備をします。会の最初には、ポジションペーパーをつかって自己紹介をします(ポジションペーパーの例)。 @yujiorama さんが実況しているのを見たことがある人もいるでしょう。自己紹介 + 近況をちょろっと添えるのが一般的です。

自己紹介がおわると、前回のつづきから議論を再開します。いままでは担当者が本の大意を訳して、コメントを添えた資料を wiki にアップしておき、それを見ながら議論をすすめてきました。さまざまな本を翻訳して出版していらっしゃる和智さんや和田さんから直々の指導を受けることができます。著者の意図についてや、他のモデルやセオリーとの比較で、熱い議論になることもよくあります。TDD をやっているメンバーで、それぞれの実例に即した情報交換もできます。

英語の本と日本語の訳を追いながらハイレベルな意見交換をしていくのはたいへん疲れます。そこで goos 読書会では休憩を大事にしていて、およそ1時間から1時間半で10〜15分程度の休憩をはさみます。幹事の大中さんは毎回違うスイーツ(それもコンビニのものではなく、有名っぽいお菓子!!)を持ってきてくれています。スイーツ男子である私にとって、これほど魅力的な勉強会はありません。スイーツやレッドブルでエネルギーを補給しながら、いままで議論していたところに関して集まって話したり、近況について雑談したりして、リフレッシュします。

一回の勉強会で休憩は2度ほどとられます。議論の進行度をみつつ、ちょうどいい時間になったら片付けをしつつ、ふりかえり(KTP)をします。

その後、希望者で近くの飲食店で懇親会をします。最近の課題を話しあったり、仕事のついて、家庭についてなど、さまざまなおしゃべりがくりひろげられます。 goos 読書会の特徴として、懇親会でも真面目な話をする場合が多いように感じますが、冗談をまじえながら、たのしくじっくりお話する、という雰囲気です。

このように、goos 勉強会では、優れたメンバーとおいしいスイーツ、たのしい懇親会を用意してあなたの参加をおまちしています。

Java や 英語が操れないとダメじゃないの?

私は、この勉強会に参加するまで Java を触ったことがありませんでした。この会に参加しだしてから テスト駆動開発入門と goos 本を写経したり、いろいろな人に教えてもらったりして、最低限の読む力をつけました(いまだに満足に書けません)。たしかに、goos 本はすべてのサンプルが Java で書かれており、説明では Java ecosystem の例を引いています。しかし wiki では用語に注をつけており、Java をバリバリ使っているメンバーから知識を得ることもできます。私は Java を勉強するためにもいい環境だと考えています。

反対に、自分は Java は使わないから関係ないや、というのは違います。この本はオブジェクト指向とデベロッパーテストに関する本なので、他の言語で開発するときにも、一般的に適用できる手法にあふれています。

英語が苦手な方も、まったく心配ありません。メンバーに開放されている wiki には担当者が日本語化したテキストが整備されています。議論の最中に訂正や補足がはいるので、原書より充実しているほどです。一人で読むと、術語を調べてでてくるのがまた英語の情報で、どんどん嫌になってしまうかもしれません。みんなで読むことで、日本語で用語や概念の解説を聞けます。

また、テキストは結構高く(3000円程度)入手も面倒ですが、電子版もあり、最悪本がなくても、wiki の訳を見ながら参加できます(だいたいの発表は本ありきで進めますが、ない人に配慮して、図をホワイトボードに書いたり、プロジェクターも利用しています)。気になるけど……という人は本なしでとりあえず遊びにきてみるのもアリです。

こわくないの?

方々で怖いという噂がたっているようですが、怖くないです。怖くないよ!!

たしかにハードルは高いかもしれません。扱うテキストは洋書ですし、他の人の発表を聞くだけという受け身な状態では得るものは少なく、わいわいしたりするような軽い雰囲気ではありません。けれども、その分、達成感はただ参加するだけの勉強会よりもはるかに大きく、実際に得る知識も多岐にわたります。

これまで述べてきたように、テキストを読んでいくうえでは他のメンバーからの強力なバックアップがあります。回によっては振り返りセッションもあるので、途中参加でも心配ありません(たぶん振り返りセッションのスライドをもらうこともできるでしょう。wiki にも蓄積された情報があります)。

次回からは Part Ⅲ という実際に AuctionSniper という例題にそって、コードを書いていく部分になります。ちょうど切りがいいので、これまで参加を検討していた人は一度来てみてはどうでしょうか。

テストや設計というと、業務でバリバリ開発している人向けのイメージがありますが、学生の参加も歓迎しています。いまも、私ふくめ、2名の学生が定期的に出席しています。情報系の学生だとある程度大きなプログラムを書くことや、グループで課題をこなすこともあると思います。それらの場面で SCM (git などのソフトウェア構成管理)ツールやテスト駆動という手法、設計の考えかたなどを利用しない手はありません。せっかくプログラムを書くのですから、一緒に開発ツールの使い方や設計手法などを学ぶことができれば一石二鳥です。

まだ不安だ、という人にはテスト駆動開発入門の写経をおすすめします。これができれば、あなたはもう参加する資格(と義務 ;D)があります(もちろん、必須ではないですよ)。

オラ参加したくなってきたぞ!

devtesting-ja( Growing Object-Oriented Software, Guided by Tests読書会) - Google グループに参加されることをお勧めしします。次回の読書会の ATND が立つと、このメーリングリストで告知されます。

また、goos 読書会の wiki にも ATND へのリンクがあります。過去の議論についての情報もここから参照できます(一部のコンテンツを見るには、メンバー向けの認証が必要です)。

Twitter のハッシュタグは #goos_jp です。遠方や用事で参加できない場合は、ハッシュタグと wiki を追えばなんとなく分かるかもしれません。

goos 勉強会は、あなたの参加をお待ちしております。

編集部注

goos読書会の次回は、2011/1/21となります。ATNDも立っています!

Last modified:2011/12/31 19:58:41
Keyword(s):
References:[xUTP Magazine 0003号] [0003/巻頭言] [ぺけま]