言いたいことはそれだけか

KotlinとかAndroidとかが好きです。調べたことをメモします。٩( 'ω' )و

「チームで育てるAndroidアプリ設計」を読んだ

[PR] 献本いただいた1「チームで育てるAndroidアプリ設計」を読んだので感想文です。

peaks.cc

全体を通して

本書は大まかに前後半に分かれていて、前半は新規開発について、後半は大規模チーム開発について、それぞれAndroidアプリ設計の勘所について述べている。よって、すでにAndroidエンジニアとして働いている人であれば大体どちらかは経験があるだろうし2、これからAndroidエンジニアとして働く人にとっては事前に勘所が予習できるので大きな価値があると思う。つまり対象読者がとても広い。Android開発に興味がある人だったら何かしらの共感もしくは知見が得られると思う。

以下、面白かった部分について書いていくが、普通に全部読んで欲しいのでほんの一部だけ紹介する。

前半パート:新規開発について

MVVMとだけ決めたチームの例 (p.4)

本パートでは実際に開発を始める前に設計することの重要性を繰り返し述べている。一例として「全くアーキテクチャを決めずに開発に走り出してしまったケース」と「MVVMとだけ決めたケース」を比較しているが、実は後者もなかなかヤバくて、徐々におかしなことになっていく様子がめちゃめちゃリアルで読んでいてニヤニヤが止まらない。これは「3.3.2 統一性が崩れる時」(p.57) とも関連していて、「何世代も書き方が存在する時、どれが最新なのかわからない問題」はある程度の開発期間を重ねたrepositoryあるあるではないだろうか。

アーキテクチャの選定と背景 (p.13)

実際にどういったアーキテクチャを選定するかの実例とその理由が豊富で読んでいて楽しい。特に多層アーキテクチャでどう言ったアプリは何層にするのがおすすめか指針が書いてあるので、分け方に迷っている人はとりあえず読んで試してみるのが良いと思う。

より多くのチームへ (p.61)

第4章では自分たちのチームでうまくいった知見を、全社に展開することの重要性といいやり方について説明している。話が少しずれるが、最近ジェンダー研究の本をよく読んでいて、こう言った自チームを超える動きは女性が比較的苦手な傾向があるらしい。3

自分もやれと言われない限り積極的にこういうムーブできてないなと反省した。やっていきます。はい。

後半パート:大規模チーム開発について

合意をとってやっていくことの重要さと難しさ

後半パートでは大規模チーム開発について語られるが、「大規模開発でも新規開発と同じくチーム内でアーキテクチャ命名規則などの合意をとってから前進していく」(p.87)とあるように、できれば前半を読んでから後半を読んだ方が理解が深まって楽しいと思う。合意をとってやっていくのは新規開発と同じだが、大規模チーム開発では合意をとるべき人数が多く、全員の目線を合わせるだけでも本当に大変。一つのプロダクトでAndroidエンジニアだけで数十人超えるような大規模チームだとどうやってるんだろうと思わずにいられない。やっていきましょう。

大規模チームのアーキテクチャ: モジュラーモノリスの例(p.99)

著者の経験を踏まえ、どう言った状況でどのようなアーキテクチャを採用したのかステップバイステップで説明されているのでわかりやすい。ただ、この例では割とメインストリームから外れた技術が採用されていて(それについては別の章でもふれられている)そのまま真似をすれば良いというわけではなく、あくまで考え方の参考に留めるべきだが参考になる。
突然GoF本のFacadeパターンが出てきて思ったが、やはり大規模なアプリの設計を考える人は引き出しをちゃんと持ってるんだなー。GoF本は前職でみんなで読書会(みんなで本を読んで1パターンずつ担当を決めてそのパターンで小さいプログラムを実装する)をやったのだが楽しかったので一人で挫折しちゃった人にはこの方法がおすすめ。

オンボーディングの知見(p.91)

人数が多くなるとそれだけ人の入れ替わりが頻繁に発生する。在籍年数を2年と仮定して、24人チームメンバーがいた場合は毎月誰かがやめていくという計算は思わず笑ってしまった。実際は人が辞めやすい時期が偏っている気がするが、人が頻繁に入れ替わっていくというのはまさにそうなのでオンボーディングを整備していこう。この箇所は組織が急拡大するフェーズのベンチャーで頑張っている人にも参考になると思う。オンボーディング具体的に何すればいいかの知見ってそういえばあまり明文化されていない気がするので貴重かもしれない。

最後に

著者の釘宮さん、横幕くん、編集のひつじさん、お疲れ様でした!


  1. 献本いただいたが、実は元々peaksでポチっていたので普通にお金は払っていますw

  2. 読んでて「わかる〜〜〜」「それな〜〜〜〜〜〜」ってめちゃめちゃ心の中で言ってた

  3. 邦題はアレですが、中身は面白いのでおすすめです https://www.amazon.co.jp/dp/B07N65TC1S/