保守費用は”永続的”に発生する
保守とは、アプリやシステムを問題なく稼働させ続けるためのメンテナンスのことです。問題が起きてないかを監視し、問題が起きた際には調査・対処・復旧を行う、ビジネスを止めないための必要な作業です。
アプリ開発を進める際、開発費用の計算は綿密に行いますが、保守費用やランニングコストにまで目を向けられていますか?開発費用は初めの1回しか支払いが発生しませんが、保守費用はビジネスが継続する限り発生し続けるコストです。本来的には開発費用以上に注意しなくてはいけません。
この記事では、アプリにおける保守作業とはどのようなものか、保守費用はどのように決まるのかを解説します。保守費用について理解を深め、開発〜保守まで穴のないアプリプロジェクトにしましょう。
アプリにおける保守コストの内訳
アプリにおける保守は通常の業務システムやWebアプリでの保守作業に加え、スマホのOSアップデート対応が必要です。そのため、保守作業エンジニアの種類が多く、保守費用も比較的高額になります。
アプリの保守で必要な作業
アプリの保守費用は、大別するとサーバー・インフラの管理、不具合対応、OSアップデート対応に分かれます。
サーバー・インフラの管理
スマホ上だけで完結するアプリでない場合、データの保存・更新・削除といった処理を実行するAPIサーバーやデータベースといったバックエンドが必要です。
アプリが正常に動いていたとしてもバックエンド側で不具合が起きてしまうと、アプリにも影響し、ビジネスに大きな支障がでてしまいます。
そのため、バックエンドの監視・管理は重要な保守作業です。
この作業にはサーバーサイドエンジニアやインフラエンジニアの工数が人件費として発生します。
不具合対応
アプリや上記のバックエンドで不具合が発生した場合、即座に調査・修正・反映といった対応をする必要があります。
アプリが使用できなくなるレベルの不具合が発生した場合、売り上げにも大きく影響する上、アプリ自体ひいては企業への信頼も下がってしまいます。
不具合発生時に十分に対応できる程度の保守費用は絶対に確保しましょう。
OSアップデート対応
OSのアップデート対応は、アプリ特有の保守作業です。
スマホにはiOSとAndroidの2つのOSがあり、これらは1年に1度のメジャーアップデート、1年に3〜4回程度のマイナーアップデートがあります。
OSの仕様変更でアプリがどのような影響を受けるのかを把握し、場合によってはアプリが正常に動かなくなり修正対応が必要となることもあります。
また、このアップデート対応もiOSとAndroidの2種類の対応が必要なため、それぞれのエンジニアの稼働を確保する必要があります。
保守費用以外にかかるアプリのランニングコスト
アプリを稼働させるにはサーバーやデータベースを稼働させるために以下のランニングコストがかかります。
・ドメイン費用
アプリ外部にAPIサーバーや、アプリ情報を記載するサービスサイトなどにドメインの設定が必要になります。
ドメイン費用は年間で数千円程度ですので、そこまで大きなコストではありません。
・サーバー・インフラ費用
APIサーバーやデータベース、 セキュリティ設定など、アプリのバックエンドには月額で費用がかかります。
これらの費用は、アプリのユーザ数や利用率によって大きく変化します。アプリリリース後の状況によって費用が異なるため、アプリ開発会社も正確な見積もりを作ることは難しく、幅のある見積もりしか作成することができません。
アプリの保守費用の相場感
保守費用の相場感について、目安として「年間あたり、開発費用の15%程度」という指標があります。予算計画を立てる際の基準として15%程度と考えておけば、どのくらいの規模でアプリの保守や運用をするのかを予測できます。
また、この費用にはドメイン費用やインフラ費用は含まれていません。
もし年間に開発費用の15%を支払うのが難しい場合、エンジニアの稼働を最低限だけ確保するというケースもあります。
- 月15時間分の稼働をおさえる
- 月10万円分の稼働をおさえる
といったようにエンジニア稼働単価と稼働時間の計算で保守費用を算出します。
しかし、この方法は保守に必要な最低限の工数をある程度自分たちで見積もれたり、社内に緊急対応できるエンジニアがいる場合に有効です。
対応できるエンジニアがいない企業が外注する場合は、ビジネス的なリスクが大き過ぎるため、開発会社に見積もりにまかせましょう。
アプリの保守費用をおさえる方法とは
では、アプリにおいて保守費用をおさえるにはどのようにすればいいのでしょうか。
「アプリの保守で必要な作業」の見出しで解説した項目をもとに、保守費用削減のために効果的な選択肢は2つあります。
バックエンドやインフラ構成を工夫する
アプリで生まれたデータを外部に保存する際のシステムである「バックエンド」や、
それを動かすために必要なサーバーやデータベースを指す「インフラ」をエンジニアの保守作業がいらない構成にすることで費用削減を図ります。
具体的には、mBaas(mobile backend as a Service)をバックエンドに採用します。
通常、データ作成/更新/削除等の処理は、APIなどのバックエンド側に処理を実装します。
その点mBaasでは、mBaasのライブラリを使ってアプリ側で実装するため、コードを書くのはアプリ側のみとなります。
mBaasの初期設定は必要ですが、実体としては保守するバックエンドがなくなるためエンジニアの工数削減に繋がります。
最近では、Googleが提供している「Firebase」がmBaasの代表格となっています。
もちろんこれは、データがアプリ内だけで完結したり、既存のシステムにデータを送信するようなアプリでは採用が難しい。
Flutter開発を採用する
保守費用削減に効果的なもう1つの方法は、「Flutterでの開発」です。
Flutterとは、Googleが開発したアプリ開発フレームワークのことで、1つのコードでiOSとAndroidのどちらにも対応できる「クロスプラットフォーム開発」の代表格です。
「OSアップデート対応」の説明の際にiOSとAndroidの対応が必要と説明しましたが、このFlutterを採用すれば保守するコードが1つになり、エンジニアの工数削減に繋がります。上記のFirebaseとの相性も良く、アプリ開発のスタンダードの1つになってきています。
また、今回はアプリの保守をテーマにしていますが、Flutterの工数削減は開発時や運用時にも当てはまるため、プロジェクト全体を通して費用削減に効果を発揮します。