はじめに
こんにちは、タイミーでAndroidエンジニアをしているsyam(@arus4869)です
昨年、「チームで育てるAndroidアプリ設計」という本について、計10回にわたって輪読会を実施しました。本書は「アーキテクチャとチーム」に焦点を当てた一冊になっており、タイミーのAndroid組織の技術顧問としてさまざまなサポートをしてくださっている釘宮さん(@kgmyshin)が著者として名を連ねている本になります。
この記事では、技術顧問の釘宮さんとAndroidメンバーでの輪読会で得た学びをシェアできたらと思っています。
輪読会の説明
週に1回テーマを設けてAndroid会という勉強会を実施しています。
勉強会の中では、miroを利用した輪読会を実施しています。
輪読会は参加者の「感想」や「勉強になったこと」を共有し、「わからなかったこと」、「話してみたいこと」について議論しながら深掘りをし、学びを得ています。
学びと実践への応用
セクションごとに学びがありましたが、特に実践へ応用された部分について抜粋して紹介しようと思います。
アーキテクチャを図にしてREADMEに見える化しました。
第2章の中にある多層アーキテクチャの例が非常に参考になったので、今のタイミーのアーキテクチャはどうなっているかも気になり、miroを利用した輪読会ならではの「その場で図にする」というワークを行いました。
下記は輪読会中に実際に図を描いた様子です。
タイミーでは、4層アーキテクチャから3層アーキテクチャに変遷した歴史があり、今もレガシーコードとして残っているので、新旧のアーキテクチャをREADMEに記載することにしました。この時に明確にできたおかげで、新規参画者への説明のハードルが下がり、輪読会の議論がとても良いきっかけになりました。
下記は輪読会で図にしたものを改めて整理して、READMEに記載したものです。
モジュールごとにREADMEを用意することにしました。
本書の第3章ではアーキテクチャの理解と適用を促進し、チームの生産性向上にどう貢献するか紹介されていました。特に理解の促進のためには、アーキテクチャの概要図やパッケージ構成、各層、クラスの説明をドキュメント化することが推奨されており、チームでもREADMEに記載することになりました。 また輪読会の中では、モジュールにも説明が必要ではないか?と議論が発展しモジュールの説明も各モジュールごとに用意することになりました。
タイミーのAndroidアプリでは、Featureごとにモジュールを分割しているので、モジュール数が多岐に渡っており、モジュールの解釈に認識齟齬が発生するリスクがありました。モジュールに対してもREADMEを記載するアプローチを生んだのは、良い議論に発展したおかげだと思います。
また、モジュールの書くべきことについては、本書に書いていない内容だったので、筆者の釘宮さんに改めて確認することができたのは、筆者が参加する輪読会ならではでとても有り難かったです。
終わりに
タイミーでは定期的に輪読会を開催しております。
輪読会では、本を読んでただ学ぶだけでなく様々な議論がおこなわれ新しい洞察を発見する場となっています。
本輪読会で取り扱った「チームで育てるAndroidアプリ設計」についても新しい洞察が得られ実際に実務への応用に発展しました。是非一度よんでみてください!
少しでもタイミーに興味を持っていただける方は、ぜひお話ししましょう!