プログラマの読書会と3年

 色々忙しい時期が続き報告にかなり間が空いてしまいましたが、少し前にxUnit Test Patterns読書会の最終回に参加させていただきました。
 このxUnit Test Patterns読書会、前のWorking Effectively with Legacy Code読書会から連続して続くもので、初期のころから参加させていただいています。プログラマの読書会コミュニティとしては初めて参加した勉強会であり、かつ参加してから丁度3年経過したということで、今回ちょっと振り返ってみたいと思います。

WEwLC読書会との出会い

 この読書会への参加は、流し読みしていたIT勉強会カレンダーでたまたま「Working Effectively with Legacy Code」という書名とその第一回読書会を見つけたのがきっかけとなっています。当時レガシーコードに悩んでいたこともあり最初は個人で読み進めていましたが、結構読みづらい洋書だったので第二回より参加を申し込むことになりました。プログラマの勉強会コミュニティへの初めての参加だったため、申し込みにも参加にもかなりびくびくしていた記憶があります。


f:id:goyoki:20080117105401j:image


 ただその読書会、蓋を開けてみると自分の予想外の方向に飛んでいる勉強会でした。
 というのも、対象書籍は「テストのないコードはレガシーコードだ」と言い放つユニットテスト/テスタビリティ原理主義の本であり、参加者も id:t-wada さん id:kunit さん @ さん id:setoazusa さんといったTDDやユニットテスト先駆者・実践者が複数参加されていました。さながらDeveloper Testingのディスカッショングループのような様相を呈していたと思います。
 また今でこそ生活の一部にとけ込んでいますが、プログラマコミュニティの「勉強会」そのもののインパクトも衝撃的でした。特に当時はソフトウェア開発についての語り合いや議論に飢えていただけに、プロフェッショナルな人達と交じりつつ、時には酒を飲みながらプログラミングやテストについて語り合うその場に、あっという間にのめり込んでいきました。


f:id:goyoki:20081122150555j:image


 そしてそれからそのエクストリームな本をエクストリームな人達と一年間読み進めた結果、未熟で勉強会コミュニティに対してもほぼ無防備だった自分は、完全にこのWEwLC/xUTP読書会に染められることになりました。

読書会と三年

 技術書の良質な読書会というのは本の学習効果を何倍にも増幅してくれます。
 例えば本会では、議論や解説を通して文章に補足・具体例・現場での導入方法・反論などといった情報ががどんどん紐づけられていきます。またTwitter、チャット(WEwLC読書会ではLingrが愛用されていました)、ML、Wikiといった読書会のコミュニケーションツールを通じて、多くの補足資料やリンクが記録されていきます。さらに単純に自分の担当枠については、準備作業を通してかなり詳細な知識が身に付くことになります。
 そして結果的に、いろいろな視点で深堀りされ、かつ体系だった知識が頭に定着していくことになります。


 自分にとって幸運だったのは、WEwLC/xUTP読書会がそうした良質な読書会であり、かつそこでWorking Effectively with Legacy Code、xUnit Test Patternsという良書を読み進められたことです。
 例えばWEwLC読書会では、テスタビリティの作りこみや現場との向き合い方について多くを学べました。特に著者や読書会参加者のテスタビリティ至上主義は、自分の開発・プログラミングスタイルに少なからぬ変化を与えたと実感しています。また当時は伝統的なWFのテスト設計・テストプロセスに従事していたこともあり、読書会を得た知見で現場でのテストの活用のレパートリーが一気に広がることになりました。
 そして続くxUTP読書会でも二年間を通してユニットテストの体系的な知識を身につけることができました。特にこの本ではテストの保守性について多くの示唆や問題意識を喚起されましたが、それらはのちのち講演や執筆の機会を頂くような流れの原動力となりました。


f:id:goyoki:20080312015543j:image:w720


 一方、そこでのエンジニアの方々との交流から得られたものも少なくありません。例えば参加者の @ さんからはソフトウェアテストの話を色々伺う一方でTEFやWACATEの紹介をして頂き、以後のテスト方面への活動の着火点につながりました。また @ さんは当時でも圧倒的で、(緊張してまともに話せてませんでしたが)とにかくt-wadaさんがテストの講演をすると聞けばDevLove、オブラブ、XP祭り、デブサミと足を運びました。ややフリーク的でしたが、そこで学んだ知見は今の自分のTDDの基礎につながっています。さらに id:htada さん、 id:tenkoma さんらは勉強会やカンファレンス等で毎回のように会って議論などをするイベント仲間になりました。
 また読書会が開催された三年間の間では、 id:setoazusa さん、id:takagimasahiro さん、その他多数の参加者の方々が、雑誌や本を執筆されたり、デブサミ等で講演されたり、公的な賞を受賞されたりと、次々と活躍していくのもとても刺激的でした。それに喚起されて、そのうち自分もブログを書き、LTで話し、講演や記事執筆にも手をつける、のような流れで、自然にアウトプットの場を広げるようになりました。


f:id:goyoki:20100103205332j:image:w720

振り返って

 この読書会が突出して優れたコミュニティかというと、もしかしたらそうではないかもしれません。タイミング、人、相性等が自分にとってとても良かったのも大きいと思います。
 ただ、背景がそうであっても、そこで得られたものは膨大です。例えるなら本から芋づる式で世界が広がっていくような3年間でした。参加のきっかけは「Legacy Code」という単語に引っかかるという些細なものでしたが、結果として自分は大きく変わりましたし、その3年間は自分のエンジニア人生の中で大事な思い出になっていくと感じています。
 読書会は三冊目の「Growing Object Oriented Software, Guided by Tests」に移っていますが、これからも気長に付き合えていければなんて感じています。 主催の@ さんや参加者の方々には本当に感謝しています。