「なんでもやってるDMM」はAndroidアプリにおいてもさまざまなサービスを開発していますが、DMMでAndroidアプリ開発がどのように行われているかについて説明します。
合同会社DMM.comでCTO室/VPoE室に所属している@kgmyshinです。合同会社DMM.comでは「なんでもやってるDMM」らしく、Androidアプリにおいてもさまざまなサービスを開発しています。本記事では、DMMでAndroidアプリ開発がどのように行われているかについて説明します。
DMMには複数のプロダクトがある
DMMでは多くのサービスを展開しています。DMMグループで開発されているAndroidアプリを抜粋すると、次のようなものがあります。
知っている、聞いたことがあるもの、「あ、それもDMMなんだ」というものもあるのではないでしょうか。
チームが複数あるからこそ横のつながりを
弊社はモバイルエンジニアが1箇所に集まって1つのグループやチームになっているのではなく、各事業ごとにモバイルアプリの開発チームがあります。そのため、他の事業部のAndroidエンジニアとは関わりが薄くなってしまい、各事業部で面白い技術的挑戦をしても、なかなか知見が会社全体にはたまりづらい環境でした。
また、チームによっては若手が多く、どうしてもアーキテクチャの面で不安を抱えていたり、なかなかキャッチアップできずにレガシーなままになってしまうチームなどが多少ありました。
しかし、それは数年前の話で、現在では社内におけるアプリ開発の需要の向上に伴ってそういった環境は徐々に解消されてきています。
定期的に開催されるもくもく会、アプリ開発における技術的な知見やリジェクト情報などを誰でも投稿できるモバイルエンジニアナレッジスペース、週1回開催されるAndroidランチ会や、社外からも参加可能なAndroid勉強会など、さまざまな施策を通して、モバイルエンジニアコミュニティが着々と育ってきています。
そういった施策を経て、事業部を超えたAndroidエンジニア間のコミュニケーション量が増えきています。結果としてより知見がたまりやすくなり、社内のモバイルエンジニアのレベルとともにアプリの品質も向上しています。
推奨アーキテクチャの構築
各事業部のモバイルアプリのコード品質の向上に特に貢献した施策の1つが「推奨アーキテクチャ」の設定です。
推奨アーキテクチャは、その名のとおり、大きくアーキテクチャを変更するタイミングや新規にアプリを開発するタイミングで参考にしてほしいアーキテクチャを設定したものです。
アーキテクチャの構築は、ゼロベースで行うと結構な時間を要します。推奨アーキテクチャを設定することで、そこにかかる時間を大きく削減できます。
また、弊社は上述のとおり多くのアプリを抱えています。アプリエンジニアが異動したり、支援に入ったりすることで複数のアプリのプロジェクトに関わることは稀ではありません。ここで推奨アーキテクチャが設定され、各事業部にこれが導入されているとき、アーキテクチャが同じなので、キャッチアップコストを大きく削減できます。
これらが設定当初想定していたメリットです。一見すると、各事業部の裁量で技術を使用できないというデメリットがあるように感じるかもしれませんが、強制ではなく、あくまでも推奨です。取捨選択して導入することも可能で、実際そのような使い方をしている事業部もあります。
推奨アーキテクチャを設定しメンテナンスを続けて約2年が経ち、今では各事業部への浸透も大きく進みました。Androidアプリ開発をしている多くの事業部で、推奨アーキテクチャが導入されています。
浸透が進むことで、当初は想定していなかったメリットも見えてきています。それは、事業部を横断したメンバーで技術的な議論を行える点です。多くのメンバーが推奨アーキテクチャのサンプルコードを見ています。そのため、コードに対する共通認識みたいなものが形成されています。
たとえばJetpack Composeの導入時、どういう導入の仕方が良いのかについて、題材として推奨アーキテクチャを用いることができました。推奨アーキテクチャのような、みんなが共通で知っているものがないとき、なかなか具体的な議論はしづらいものです。もしこれがなければ、集まって議論したとしても、実のある結果にはなってなかったでしょう。事業部に依存しないメンバーで議論を行って技術検証をすることで、知見の共有も自然にできるようになりました。
知見が循環する組織
現在弊社では、Kotlin Multiplatform Mobile(以下KMM)を導入して開発を進めているプロジェクトがあります。
AndroidとiOSの推奨アーキテクチャをベースにしており、それをKMMに適用するとどうなるのか、AndroidエンジニアだけでなくiOSエンジニア目線でもフレンドリーなアーキテクチャにするにはどうしたらよいか、という議論が日々行われています。
このリポジトリは社内ではオープンになっており、誰でも見られるようになっています。ある程度完成し、開発が落ち着いたころには、社内の他のエンジニアにも展開され、徐々にKMMを使うプロジェクトも増えていくでしょう。
このようにして、推奨アーキテクチャは各プロジェクトで適用され、適用時のフィードバックによってより良くなってきています。今、社内ではこのように知見の循環がうまく回る環境になっています。
以上が今のDMMでのAndroidアプリ開発環境です。
採用情報やテックブログなどの紹介
弊社、合同会社DMM.comではAndroidエンジニアを募集しております。下記のリンクから採用情報や会社の雰囲気がわかります。興味のある方は覗いてみてください。
また、弊社の状況についてもうすこし詳細に聞きたい、カジュアルに話したいなどあれば、ぜひ@kgmyshinまでご連絡ください。