こんにちは。ヤプリの iOS グループでリードエンジニアをしている三宅です!

今回は iOS グループで今期取り組んでいる基盤改善で、チームから吸い上げた課題からどのように改善対象の選定を行ったかについてお話ししたいと思います。

<aside> 🗒️ 本記事は ヤプリ #2 Advent Calendar 2022 の 22日目 の投稿です。

</aside>

アプリプラットフォームの開発の一部

ノーコードでアプリを作れるアプリプラットフォーム開発では、様々な機能が色々な組み合わせでアプリとして組み込まれます。そんな機能はオプションとしてつけ外しができ、その機能の中には外部 SDK に依存するものなど様々な種類があります。

アプリのサイズにも影響するため全てを組み込んでおくのではなく、必要に応じてビルド時に SDK 自体も動的なつけ外しを行っています。

また、古くから提供している機能については Objective-C で実装された機能もあり、今も尚メンテナンスされ続けています。

機能の利用頻度やリプレイス

多数な機能を様々な市場での課題解決手段として提供していることもあり、機能によって利用頻度やメンテナンス頻度、あるいは調査頻度などに濃淡があります。

ある機能では四半期で複数回問い合わせがあり、調査や返答に何日も工数を要しているものもあります。ある機能ではほとんど問い合わせがなく、手が入った形跡も少ない機能もあります。

リファクタリングや改善対象の選定

メンテナンス難易度の高い属人化された機能

ニッチな市場に対しての機能でも、大きな企業にニーズがあればそれだけ MRR は成長し、利用アプリは少ないが重要機能として提供され続けるものもあります。更に傾向としては、利用企業が限定されている機能はベンダー提供の外部 SDK が組み込まれてるケースが多く、利用アプリは少ないが様々な面でインパクトがあるものが多いです。

一方でそれらの機能は、ベンダー提供の外部 SDK を利用していることでメンテナンスコストが高くなりがちで、属人化されていたり動作確認のドキュメントが整っていないことで改善の手を出しづらい状況となっていました。

こういった機能は、利用頻度だけで判断すると見逃しがちですが、将来に渡って継続的なメンテナンスが必要とされることが予想できるため、安定化を図るためにスコープに含めて改善を検討することとしました。

調査頻度も利用頻度も高い機能

アプリチームへ依頼が来る調査についてはチケットベースでやりとりがされ、どんな機能にどれくらい依頼が来て、回答までにどれだけ時間がかかっているなどの分析もしています。

機能ごとに調査依頼の数や時間のかかり方や利用数も異なり、特に調査依頼数と回答時間を見ることでどれだけコストが掛かっているかが見えてきます。

コストの高い機能は、仕様や実装が複雑でデグレが発生しやすいものに多い傾向で、少ない変更の修正でも影響範囲が分かりづらいことが多いです。