minimoアプリ開発チームが、技術負債解消を乗り越えて目指す未来

Chihappy
MIXI DEVELOPERS
Published in
Mar 27, 2024

--

2024年1月20日で10周年を迎えた「minimo」。昨年、アプリで使用しているAPIにおけるPerlからGoへの移行が概ね完了するなど、数年前からリファクタリングの大きな波が訪れていました。

そんなminimoでは今、モバイルアプリも大きな変化を遂げようとしています。

詳細を聞くべく、アプリ開発チームの穴水、鈴木、瀬尾へのインタビューを実施。チームの自慢したいカルチャーや現在注力して取り組んでいること、今後の展望について聞きました。

登場メンバー

鈴木(写真右上):2019年にミクシィ(現MIXI)に新卒で入社し、現在までminimo事業部でiOS/Android アプリエンジニアを担当。

穴水(写真左上):製造業のIT子会社へ新卒入社し、iOS エンジニアとしてリアーキテクチャなどのコードベースの改善やOJTによる後進育成を担当。2022年7月にminimoへジョイン。

瀬尾(写真右下):2018年に新卒で大手IT系企業に入社し、iOSエンジニアとして動画ライブラリや地図系アプリの開発を行う。2023年10月にminimoへジョイン。

たまたま遠方居住者が集まったアプリ開発チーム

━━みなさん、マーブルワークスタイル制度を活用して東京の遠方に居住されているとお聞きしました。minimoには遠方からリモートで働かれている方が多いのでしょうか?

穴水:全体でみると少数なのですが、たまたまモバイルアプリ開発のチームに遠方居住の方が集まっていますね(笑)私は今住んでいる場所から引っ越さない前提で入社して、そのまま遠方から働いています。

瀬尾:僕も入社前に、今住んでいる場所から働きたい意向を伝え、OKの返事をもらいました。

━━なるほど、たまたまだったんですね。インタビュイー全員が遠方に居住されているのが珍しかったので聞いてみました。みなさん同じチームに所属されているのでしょうか?

穴水:組織上は同じチームです。ただ、現在はアプリ開発チームが2つに分かれています。鈴木さんと私がモバイルアプリのリプレイス担当で、瀬尾さん含む他のメンバーは、主に既存アプリの運用や新規開発を担当されています。

瀬尾:新規開発のチームでは、さまざまな施策に合わせた開発などを行っています。2024年1月に10周年を迎え、成長を続けているサービスなので、常にさまざまな施策が動いています。

━━リプレイス担当のお二人は、それぞれどんな役割を担われていますか?

穴水:私は元々iOSエンジニアで、現在はモバイルアプリ開発全体の技術的負債解消の旗振り役として、方針決めや計画立案を行っています。それとは別に、モバイルアプリ開発のメンバーに技術的なアドバイスをしたりもします。

鈴木:私は、実際にAndroidアプリのフルリプレイス作業を進めているところです。アーキテクチャやモジュール構成を検討したり、他のAndroidエンジニアにアドバイスをもらいながら土台を固めたりしています。

minimo事業部全体でメンバー間の距離が近い理由とは

━━minimoのカルチャーについて、自慢したいことはありますか?

鈴木:僕は、職種に限らず、「minimoを良いサービスにしよう」という想いの強い方が多いと感じています。ちょっとした改善点や施策の提案、お互いへの声かけが職種を超えて活発で、みなさんサービス愛を持って働かれている印象です。

穴水:実は私も、minimo事業部のそういった雰囲気が転職の決め手の一つでした。

瀬尾:僕もその通りだと思います。エンジニア間だけではなく、企画―エンジニア間でもサービスをよりよくするにはどうすればいいか?というコミュニケーションをよく取ってますよね。

それと、minimoにジョインして、マネジメント層の方々との距離がすごく近いことに驚きました。他社でいう本部長レベルの方にも気軽に話しかけることができます。そうやって普段から情報を吸い上げているからか、MTGでは現場のメンバーと同じレベルの情報を持って会話されていますし、ワンチームとはこういう姿を指すんだろうなと感じました。

━━現場のメンバーにとって信頼できるマネジメント陣ですね。ちなみに、どうしてメンバー間の距離が職域問わず近いのか気になりました。

穴水:そうですね…課題解決の思考を持っている方が多いことが一つの要因かもしれません。目の前にある課題を解決するために何をすればいいか、という思考で動いているので、解決のためにできることがあれば積極的に協力し合う体制ができています。

それに、相手の考え方や背景を理解しようという雰囲気もあります。さきほど瀬尾さんがおっしゃっていたことに近いですが、職域関係なく、事業に関わる情報はなるべくインプットしておきたいと考えているメンバーが多いです。そのため、非エンジニア職の方と話す時は専門用語を分かりやすく翻訳することを心がけたり、その逆の気遣いもいただいたり、お互い歩み寄ろうという気持ちを持っている気がします。

とはいえ、専門性の高い話については「信頼しているから任せます」と言ってくださることもあって。理解する姿勢を持ちつつ、要所では専門家である自分たちの判断を尊重して任せてくれる。そういった姿勢が信頼感につながり、結果的に距離感も近くなっているんだと思います。

━━そういった意識が現在のフラットな関係性につながっているんですね。

瀬尾:minimoにいると不思議なことに、◯◯関連で困ったら◯◯さんに聞く!という事業部内のメンバーマップが、いつの間にか頭の中に出来上がっていて。前職の時は、マネージャーを通じて少しずつ辿る必要があり、目当ての情報を持っている人にたどり着くのが大変でした。これは企業規模の違いかと思っていましたが、距離感の違いもあったのかもしれません。SlackやoViceなどのコミュニケーションツールで誰が何の話をしているのかがゆるく可視化されていますし、何よりダイレクトに話しかけやすい関係性が浸透していると感じています。

穴水:確かに、私も以前いた会社では情報を持っている人にたどり着くのが大変だった気がします。

鈴木:そうなんですね。僕は新卒からずっとMIXIで、他と比較したことがなかったので、こういった話を聞けて面白いです。

腰を据えて、技術的負債の解消に取り組む

━━現在抱えている課題や、注力して取り組まれていることについても教えてください。

瀬尾:アプリ開発全体として、技術的負債の解消が目下の課題になっています。iOSアプリ開発では、今でもObjective-Cで書かれたコードが残っており、これが開発効率の低下につながっています。さらに、現在のiOS開発の標準はSwiftなので、将来的にObjective-Cを書けるエンジニアが減少し、開発が困難になる可能性もあります。

鈴木:AndroidもiOSと同様に負債が溜まっている状況です。ただ、AndroidはiOSよりも負債が溜まっており、作業時間におけるリファクタリングの比重がかなり重くなっていました。2016年から2020年頃までの画面設計のトレンドを、一通り採用した痕跡があり、同じAndroidアプリの中でも画面によって設計がバラバラになってしまっています。また、画面に限らず全体の設計も場所によってまちまちでした。

これでは新しいメンバーのキャッチアップが大変ですし、品質低下の抜本的な改善として、現在はフルリプレイスを進めています。

━━穴水さんはアプリ開発全体の技術的負債解消を見られている立場ですが、いかがでしょう。

穴水:お二人のお話しされた通りです。付け加えると、両方ともレガシーなコードや仕組みが随所に存在するので、開発言語の新しい機能などを使いたくても使えない状況です。そうすると新しい技術を学ぶ気が湧きづらいと思います。これはエンジニアのモチベーションに関わるすごく大きな問題です。そのため、Androidではフルリプレイスという意思決定を行いました。iOSに関しても現在戦略を練っているところです。

もうひとつ、少し未来の話になるのですが、いつかモバイル共通の構造を作ってAndroidとiOSの垣根を壊したいです。現在、サーバーとの通信などのビジネスユースケースロジックはiOSとAndroidで別々に考えて実装していますが、ここはモバイル共通のロジックになっているので、本来分けなくても良いところだと思います。今はプロダクトとしてiOS/Androidが別物なので仕方がないですが、将来的には仕組みを整えて、モバイル全体で開発を進められるような構造にしていけたらいいなと思います。

アプリ開発メンバーが挑戦してみたいことは?

━━鈴木さんと瀬尾さんも、今後挑戦してみたいことはありますか?

鈴木:今現在Androidアプリのリプレイスを担当していますが、美容業界でこれからの10年を戦えるようなアプリの土台を作るという意味では、これも一つの大きな挑戦だと捉えています。

━━なるほど。ちなみに、少し話がそれますが、1人でリプレイスの作業を進めていくのは大変じゃないですか?

鈴木:穴水さんもマネージャー陣もケアしてくれていますし、他のAndroid開発のメンバーも積極的にFBをくれるので、一人で抱え込んでしんどくなることはないですね。支えてもらっている安心感とみなさんからの期待のおかげで頑張れていると思います。

瀬尾:鈴木さんは聖人ですね。もっと人をくださいと言ってもいい場面だと思いますよ(笑)

鈴木:本当に、僕一人で頑張っているとは感じていないので(笑)もちろん、協力してくれる仲間が増えていったら嬉しいとは思います。

━━仲間が増えるとさらに嬉しいですよね。瀬尾さんはいかがでしょうか。

瀬尾:新しい技術にどんどん触れていきたいです。自分が得た知識や技術をminimoのサービスのコードに取り入れたいですし、勉強会などの形でチームへも還元したいです。実際に、直近ではMIXI入社前から溜めていた知識を共有する場を設けました。

また、コミュニケーションを記録に残したり、オープン化するような文化もさらに促進していきたいです。そのために、ルール作りの提案も最近は行っています。

穴水:自分もエンジニア出身なので、新しい技術には触れていきたいですね。特に、アプリ開発全体の技術的負債を解消する上で、スキル不足を実感しているAndroidの知識をインプットしたいです。

一方で、現在マネジメントの方向性にシフトしていっているので、マネジメントの知識のインプットも必要です。やるべきことがたくさんあるので、何を優先度高く取り組むべきか迷っているところですね。まずはメンバーが私に期待している振る舞いは何かを言語化するところから始める必要があるかもしれません。

一緒に働きたい人物像

━━最後に、どんな方と一緒に働いてみたいか教えてください。

穴水:一緒に悩んで物事を進めていける人と働きたいです。Androidのリプレイスにおいて、みんなが頭を悩ますような壁にぶつかる場面がしばしばあります。そうした問題について、ぽろっと漏らした時に、本気で一緒に考えてくれるメンバーがいてくれるとすごく心強いんじゃないかと思います。

鈴木:確かに、一緒に悩んでくれるのはすごく大事かもしれないですね。僕は、一緒に働きたい人について考えた時に何か特定のスキルは思い浮かばなくて。現在のカルチャーにフィットするようなサービス愛を持った方はもちろん嬉しいですし、技術にすごく貪欲な方も新しい風を吹き込んでくれそうでいいなと思います。何かしら情熱を持って取り組んでいる方であれば、一緒に楽しく働けそうです。

瀬尾:僕もお二人の意見に賛成で、付け加えるとしたら面白い人・楽しい人と働きたいです。なんでも面白がって話してくれたり、ポジティブな雰囲気を表に出してくれる方とのコミュニケーションは気持ちがいいので。

━━そういった方がいると職場の雰囲気がよくなりますよね。それでは、ありがとうございました!

▼関連リンク
10周年を迎えた『minimo』。これまでの成長と今後のビジョンについて事業部長に聞いた
https://mixil.mixi.co.jp/product/17736

--

--