いものやま。

雑多な知識の寄せ集め

読書会をやってみた話。(その3)

前回の続き。

デザパタ読書会

ProGit読書会のあと、前回紹介したスモールデータ解析読書会とは別に、自分はオライリーの『Head Firstデザインパターン 第2版』を読む読書会を企画した。

この本は初版ですでに読んでいて、デザインパターンの本としつつ、オブジェクト指向的な考え方やMVCについて理解が深まる、めっちゃいい本だと思っている。 微妙にスベってる気もするけど、面白おかしく書かれているので読みやすいし。

で、コードの保守性や変更容易性を高めるためにはこういったオブジェクト指向的な考え方が必要なんだけど、チームに浸透してない感じがあったので、この本で設計力を底上げしたいなと。

また、このあたりの基本的な考え方を理解しないまま流行だけ追って、よく分からずに振り回され疲弊してる感じも他チームで見られたり。 理屈が分からなければ教条的に受け入れるしかなくて、換骨奪胎になるだけで恩恵を受けられないのにね。 なので、こういった基本的な本をじっくりと理解してもらいたいなというのもあった。

自分としても、いい本なので第2版が出たこのタイミングでじっくりと読み返したいというのがあった。 加えて、それぞれのデザインパターンについて実際に手を動かして書いてみることはなかったので、実際に手を動かしてみたいなと。

そして、進め方はProGit読書会のふりかえりも踏まえて、以下のようにしてみた:

  • 隔週で読書会の時間を1時間とる
  • 1回の読書会では1章を進める
  • あらかじめ読んでGoogleドキュメントにメモしておく
    • 「分かったこと」「質問・議論したいこと」「その他補足」のカテゴリに箇条書き
    • 「質問・議論したいこと」「その他補足」は記名で書く
    • 業務で使えそうなところを議論する
  • Pythonのサンプルコードを自分が用意する(※本のサンプルコードはJava
  • 司会と書記を持ち回りで担当する
    • 司会はメモを読み上げて議論をファシリテーションする
    • 書記は画面共有して議論の内容などをメモに追記する
  • 途中にふりかえりを挟みカイゼンする(5章と11章のあとで実施済み)
    • メモの順番は「分かったこと」「その他補足」「質問・議論したいこと」「コード例」の方がよさそうと途中でなった
    • さらに「分かったこと」「その他補足」「分からなかったこと」「議論したいこと」「コード例」の方がよさそうとなった
    • コード例も読書会の前にあらかじめ見ておこうとなった
    • Slackで日程調整できたのがよかったので、今後も必要ならやっていこうとなった

工夫したところとしては、頻度を下げ、かわりに時間を長めにすることで、質問や議論をしやすくした感じ。 これは自分がサンプルコードを用意するうえで、毎週開催だと大変というのもある。

また、1回で1章進めると決めたことで、どれくらいで読み終わるかの計画を立てやすくした。 時間を長めにしたのは、確実に1章分終わらせられるようにしたというのもある。

あと、個人的なチャレンジとして、他チームのメンバーにも声を掛けたりした。 なかなか交流の機会がないんだけど、他チームでの開発の様子が聞けたり議論ができたりで、けっこうよかったと思っている。

Pythonのサンプルコードを用意するのも個人的にやりたかったことなので、楽しかった。 ふりかえりの中でもサンプルコードのおかげで理解が深まったという声もあったし。 このあたりのコードは業務とは関係ないし、ちょっと手直ししてブログでも公開したい。

で、実績としては2023年の6月末に第1回をやっていて、ふりかえり3回を含めて第17回が2024年の2月末に終わる予定。 8ヶ月強なのでまぁ長いんだけど、期間をコントロールできてる感はあるので、いい感じだと思う。

まだ最後のふりかえりまで終わってないけど、今のところ出てる感想とかは以下:

  • 他チームの話なども聞けたのがよかった
  • 業務で使えそうなところを含め、いろいろ議論できたのがよかった
  • Pythonのコード例が用意されてたので、理解があってるかの照らし合わせができた
  • そもそもオブジェクト指向とは?みたいなところがあり、考え方に慣れていく機会としてよかった
  • 普段使ってるライブラリの理解に役立ちそう
  • Factoryパターンは難しかった
  • Stateパターンを知って、モノだけでなく状態も1つのクラスとして定義できるのは発見だった
  • 最終的には使わなかったけど、このパターンが使えそうかも?と設計で考えられたのがよかった
  • パターン同士の座談会が面白かった(違いや類似点が分かる)
  • いろいろあるパターンの全体像を眺められるようなマップがあるとよさそう
  • まずは何か1つのパターンを使いこなせるようになるとよさそう
  • パターンの逆引きがほしい(課題→パターン名→具体的な書き方、みたいな)

けっこういい感じで、みんなの役にも立ってるかなという感覚。


デザパタ読書会が終わったあとも、また何か別の読書会をやってみたいところ。 なんなら社外の人とかも巻き込めると面白いよなぁ。 ただその場合は業務に近しいところの話はできなくなるので一長一短だけど。

あるいは読書会以外の勉強会を企画してもよさそう。 また何か新しいことをやったら紹介したいと思う。

今日はここまで!