アプリ開発を通して進めるべきプロダクトやビジネスが決まったとしてても、漠然としたアプリ化案だけでは、見積することが困難だったり、見積もりを仕上げるまでに時間がかかります。プロジェクトをスムーズに進めるために、「お客さんにこれくらいまでは考えてもらえると助かる。」というガイドが必要です。
そこで今回の記事では、アプリ開発の見積もりを開発会社に依頼する時に予め決めておきたいアプリ要件についてお伝えします。
目次
アプリ開発の要件定義とは?
そもそも、要件定義を行う理由は、アプリ開発の目的を明確にし、さらにユーザーが求めていることを明確にするためです。要件定義の段階でできるだけ具体的にアプリの内容を考えておかなければなりません。
ざっくりとしたアプリのイメージを、より明確に、より詳しく決めていくのが要件定義です。例えば、ざっくりと電卓アプリをつくりたいというイメージがあったとして、それを要件定義にまで落とし込むことでアプリの仕様が詳細になっていき、実装できる状態になります。
そして、要件定義をすることで本当に必要な部分と必要でない部分、ユーザーニーズに応えられていない部分が見えてきます。つまり、要件定義がうまくいくかどうかがアプリ開発の成功を左右するといっても過言ではありません。
始まりにないものは終わりにもありません。最初の要件定義がうまくいけばば、出来上がったアプリもその要件定義を実装したものができあがります。逆に、要件定義に含まれていない仕様は当然のことながら実装されません。要件定義で決めたことがアプリに実装されることです。
また、アプリの開発手法によっても要件定義の立ち位置が異なります。
アジャイル開発
アジャイル開発はリリースまでの期間が短く、開発途中の仕様変更・要件変更にも柔軟に対応できる新しい開発手法です。要件定義やリリースを短いサイクルで繰り返すのが大きな特徴です。
ウォーターフォール開発
旧来からあるウォーターフォール開発は初めにプロジェクトの要件定義や設計を細部まで決める必要がありましたが、アジャイル開発は優先度の高い重要な機能から着手できるので、素早くリリースしてから徐々に機能を追加していくことができる特徴があります。
量子力学的世界観と呼ばれる、情報のスピードが速い現代社会にマッチしているのはウォーターフォールよりはアジャイルだと言えます。
アプリ開発の要件定義で必要なこと
円滑なコミュニケーション
アプリ開発が失敗する要因として多いのは、開発側と発注側双方のコミュニケーション不足やコミュニケーションのずれです。
開発側は、本当に必要なものが何かを理解できるまで、とことん顧客と向き合ってコミュニケーションを取ることが重要になります。一方で発注側も、開発会社に丸投げするスタンスではなく、アプリ開発のプロジェクトにしっかりコミットしなければなりません。任せっぱなしでは後から想定外のアプリが納品されることになり、自分の首を絞める行為になりかねません。
アプリの一部分だけを外注する場合でも、開発サイドにプロジェクトの全体像をしっかり説明する必要があります。その際ただ単に要望を伝えるだけでなく、事業内容や事業戦略についても共有する方が良いでしょう。全体像を理解せずに部分だけみていると、要望のさらに背景にある意図や思いが伝わらず、それがコミュニケーションのずれにも繋がってしまいます。
UI(ユーザーインターフェース)や機能
要件定義を行うにあたってはアプリのUI(ユーザーインターフェース)や機能、扱うデータを決めておく必要があります。UIはユーザーが直接接するが故に、ユーザー満足度と直結する重要な部分です。使いづらいと思われたUIのアプリはすぐ使われなくなってしまいます。
また、口頭で要求を伝えることには限界があるので、モックアップを用いて、視覚的に完成物のイメージを共有するのもオススメです。モックアップは完成形をイメージしやすいような視覚的に確認できるものです。アプリの場合は画面や画面遷移がイメージしやすいでしょう。画面デザインや画面遷移の流れがイメージできれば、使用する時のことを想定しやすいです。
モックアップにより完成物のイメージを共有しやすくなる結果、顧客側の潜在的なニーズを踏まえたアプリ開発が可能になります。また、要件定義の段階で開発するプロダクトを明確にできるため、手戻りが生じるリスクを軽減できます。
アプリ開発においては、手戻りが発生することが工数を増やしてしまう原因ともなります。工数が増えるとエンジニアの労働時間も増え、結果的に人件費も増大します。そのため、手戻りが生じないようにすることはコスト削減にも繋がるのです。
要件定義で定めたことは、要件定義書として文章としてまとめておくと後から活用しやすいです。口頭だけでやり取りをしていると、立ち戻るのが難しくなりますし、後から言った、言っていないの論議になりかねません。
要件定義で失敗しないために意識したいポイント
費用感
件定義で失敗しないために一番注意しておくとよいのは費用の目安を見誤らないことです。アプリを開発する手段別に分けて意識すべきポイントを説明します。
ゼロからアプリを開発(スクラッチ開発)する場合
スクラッチ開発の場合、アプリ開発会社に依頼することになります。アプリの仕様を同じ条件で依頼をしても開発会社によって見積もりの費用には違いがあります。
アプリ開発にかかる費用は、アプリに実装する機能やiPhoneが搭載するOS(iOS)、Android端末が搭載するOS(Android)への対応、開発に携わる人数×開発期間などから算出されますが、開発会社の規模によっても変わります。
ASPサービスで作る場合
ASPサービス会社とは、アプリ開発に必要なソフトウエアをネットワーク経由で提供している会社のことです。
スクラッチ開発するほどの十分な予算がなく、プッシュ通知など一般的にある機能が使えれば十分で、独自性を持たせる必要がない場合、ASPサービス会社にアプリ開発を依頼する方法もあります。この場合、スクラッチ開発よりも低く費用を抑えることができます。ASPサービスとして、最近では、Monaca、Yappliがメジャーになっています。
ASPサービスを採用するかどうかは、開発プロジェクトの予算や準備することができるエンジニアによって決めるのがよいでしょう。
コミュニケーション
企業の新規事業担当者が表に立って開発チームとやりとりをするのが一般的ですが、要件定義やデザインコンセプトなど主要部分の最終決定者は担当者よりも上のポジションの人が行うケースが多いです。
そのため、依頼側の稟議の有無や稟議の承認プロセスを開発チームと共有しておかないと、予想外のところで時間がかかってしまうこともあります。後から手戻りが発生してしまうと大きな超過コストにもなりまねません。
他部署のルールや自社のコンプライアンスを理解しよう
よくあるミスとして、他部署との連携時、他部署のルールや自社のコンプライアンスの確認漏れがあります。アプリ開発を進めている部署内では当たり前のものとして話が進んでいたとしても、さらに上位の社内ルールが後から見つかると話が根本からズレてしまいます。
自社のコンプライアンスは毎日毎日確認するようなものでもないため憶えていないかもしれませんが、社外とのやり取りが発生する場合にはきちんと理解しておく必要があります。
当たり前と思い込んでいることに気づくのは難しいですが、コミュニケーションのずれとも繋がって、お互いの大前提が違うと話がかみ合いません。自分の部署の当たり前がいつも通用するわけではありません。
最初に決めておきたい前提条件の必要性
アプリ開発で見積りを取る際には、前提条件が明記されていることがとても重要です。特に受託開発では、最初に仕様をきちんと設定した上で開発を始めることができるかどうかによって、そのプロジェクトの成功率が大きく異なってきます。
前提条件とは、開発を行うエンジニアの頭の中に想定されている要件のことで、発注する側と受注する側とでプロジェクトに対する理解や見解を同じレベルにするために文章として明記する必要があります。
この前提条件が共有化されなければ、発注側と受注側との間でプロジェクトに対する見解が異なってしまい、後からトラブルが起こりやすくなります。誤解を生じないためには、前提条件を見積りに明記することが重要です。
前提条件としては以下の要素が挙げられます。
見積もり範囲
見積もっているアプリの対象範囲はどこなのかを明記しましょう。ソフトウェアのどこが対象になるのか、です。どの機能が見積もり対象なのかも明記しましょう。境界線を明確にすることで責任の所在も明確になります。
見積もり対象外範囲について
あいまいな部分をなくしていくためには、見積もりの対象外の項目もしっかりと記述しておきましょう。アプリの開発範囲については、文字では伝わりづらいため、アプリ構成図などを作成しておくとわかりやすいです。
使用技術
使用するプログラミング言語や開発ツールを記載しましょう。
プロジェクト開始後に根本の技術が変更にならないよう、使用技術についてもできるだけ細かく記述しておきましょう。プログラミング言語によってソースコードも変わりますし、後から変更が発生してしまうと手戻りが大きいです。
開発プロセス
ウォーターフォール、アジャイル、反復型など、開発プロセスに何を採用し、どのような進め方をするかも決めておきましょう。
プロジェクト期間
1人月の作業でも、1ヶ月で行うか9ヶ月行うかによって期間は全然変わってきます。プロジェクト開始、終了含めて期間の前提を書いておきましょう。
要件
見積もり段階での要件というのは明確でないことが多いです。要件が明確でないものに関しては、機能に対し前提を考えて書いておきましょう。
プロジェクトの運営方法
プロジェクトの進捗管理、意思決定はどのように行われるのかなどプロジェクトを運営していくうえでの前提条件が必要です。
テスト
テストという作業に対して何を行うか、またテストパターンはどのくらい行っていくかをしっかり決めないとテストはすぐ工数が膨らんでいきます。OS、端末などの組み合わせによっていくらでもパターンを増やすことができます。しかし、パターンが増えたとしても、それに対応できるだけの工数に余裕がなければ満足なテストはできません。テスト工程にかける時間の見積もりをすることが大事です。
納品物
ほとんどの受託開発では、納品物があります。プロジェクト終了時に納品物が無くて困らないように、納品する成果物、また成果物の粒度についても前提を決めておきましょう。
見積もり前に決めておきたい5つの費用
見積もりを依頼時に大事なことは、作りたいアプリを具体的にすることです。
どんなジャンルのアプリであっても、見た目に違いがあっても、アプリ内で実現したいことは同じです。アプリ開発の見積もり前に決めておくべきことを、5つご紹介します。
OSを決める
開発したアプリをどのOSで公開するかを決めましょう。スマホ用アプリは、iPhoneやiPad用の「iOS」とGALAXYなどの「Android」の2種類があります。iOS向けアプリとAndroid向けアプリは、同じアプリでも異なるものと考えてください。プログラミングの言語や開発環境に違いがあるので、どちらにも対応できるアプリとなれば、アプリを2つ作ることになるので、費用は倍になります。使う技術も異なるため、対応できるエンジニアも変わってきます。
最近では、iOS用とAndroid用のアプリを2種類同時につくることのできる方法も出てきています。ハイブリッドアプリと呼ばれています。ハイブリッドアプリで開発することによって、開発工数を抑えることができます。
ユーザーの個人情報やデータの使用
ユーザーの個人情報を使用する場合のパターンは、すでにあるデータを使用するか、新規でデータを取得するか、の2つがあります。
ユーザーに関するデータを持っている場合は、そのまま活用できますが、新規の場合には取得したデータを保管・管理するデータベースが必要となるので、その分費用が高くなります。
ログインの必要
アプリの利用にログインが必要になるのかを決めましょう。
既に持っているSNS、例えばFacebookやTwitterのアカウントを利用してするログインする場合と、メールアドレスでログインする場合とあります。費用を決めるポイントは、「個人情報のデータを管理するのか? 」です。SNSのアカウントを使う場合は、SNS側で保存されているのでアプリ開発者側での管理の必要がありません。メールアドレスを使う場合は、アプリ側で情報を管理する必要があります。つまり、メールアドレスでログインする場合の方が、アプリ開発では費用がかかります。
デザインの依頼
デザインは、アプリの人気を左右するのでこだわりたいところです。色やボタンの形など、見た目の評価はもちろんですが、操作時の使い勝手の良さや、スマホの画面でも見やすいように文字の大きさや配置まで考える必要があります。
依頼方法にも大きく3種類があります。
内製
内部のデザイン経験がある人材を活用してデザインを行う方法です。外注費がかからない点がメリットですが、人材確保ができる保証はありません。
外注
専門的な知識やスキルを持ち合わせたデザイナーを選ぶか、クラウドソーシングサービスを使って不特定多数のデザイナーに対して応募することができます。対企業に対して発注するよりは、クラウドソーシングサービスを使った方が安価で済みます。
公募
公募サイトを使って、例えばロゴデザインを募集するのも1つの手です。アプリの宣伝にもなります。プロのデザイナーだけでなく、広く一般から募集することができるため、独創性のあるデザインを採用したり、一般の方も巻き込んだアプリにできる可能性もあります。
他社のツールの使用
他社のツールを組み込んで、アプリで使用することができます。一番分かりやすい例として、「Googleマップ」があります。最寄りや指定した地域の店舗を探したり、道順を確認できたりします。その他にも、カメラや音声などが使用可能です。
アプリ開発の見積もりを算出するタイミング
アプリ開発が失敗してしまう原因にはいろいろありますが、見積もりが原因で失敗するケースは少なくありません。多いケースとしては、見積もりを算出する際に、詳しく仕様を決めないまま開発をスタートしてしまうことです。
アプリの開発を発注する際には、ヒアリングを行いながら、そのイメージをエンジニア側へ伝えるのですが、十分なヒアリングを行わない場合には、発注する側のイメージをエンジニアが異なる解釈をした状態でアプリの開発が始まってしまいます。
そうすると、実際にアプリが納品されてから、「こんな仕様のアプリを発注したわけではない」というクレームにも繋がりますし、修正を繰り返すうちに、エンジニアやテスターの作業工数がどんどん増えてしまい、最初の見積もりの数倍も多くかかってしまうという事態にもなりかねません。
アプリの開発を発注する側と受注する側とで誤解やトラブルを生まないためには、開発のプロセスごとに何段階かで見積もりを修正していくという方法があります。大きい範囲を細かく区切るのです。細かくすることによって、1つ1つの見積もりのずれを小さく抑えられ、結果的に全体のずれも抑えることができます。
まとめ
今回の記事ではアプリ開発の見積もりを依頼する時に決めておきたいアプリ要件について以下の6項目でまとめました。要件定義はアプリ開発の成功を左右する、とても重要な工程です。そのことをきちんと理解した上で行うようにしましょう。
①アプリ開発の要件定義とは?
始まりにないものは終わりにもありません。要件定義はアプリ開発成功のカギを握っている重要な立ち位置にあります。
②要件定義で必要なこと
要件定義に盛り込んでおくべきポイントをご紹介しました。コミュニケーションのずれをなるべく少なくすることが重要です。
③要件定義で失敗しないために意識したいポイント
意識しておきたいポイントとして、開発全体にかかる費用感、発注側と受注側とのコミュニケーション、また他部署のルールや自社のコンプライアンスを理解することを挙げました。
開発する方法としてはスクラッチ開発か、ASPサービスを使った開発の大きく2種類があります。
④最初に決めておきたい前提条件の必要性
前提条件を決めておく項目としては以下の9つを挙げました。
1.見積もり範囲
2.見積もり対象外範囲について
3.使用技術
4.開発プロセス
5.プロジェクト期間
6.要件
7.プロジェクトの運営方法
8.テスト
9.納品物
⑤見積もり前に決めておきたい5つの費用
考慮すべき費用として、OS、ユーザーの個人情報やデータの使用、ログインの必要
デザインの依頼、他社のツールの使用、の5つを紹介しました。
⑥アプリ開発の見積もりを算出するタイミング
見積もりにずれがあると、アプリ開発自体も失敗してしまうことに繋がります。見積もりを算出するタイミングも重要です。
アプリ開発に関するご相談承ります
スマートフォン向けアプリを多数開発しているSun*では、開発をスピーディかつ高い品質で行うための豊富なノウハウがあります。ご要望に沿って開発するだけでなく、サービスの本質を捉え、多種多様な機能や技術のノウハウを活かした提案をいたします。具体的に構想が固まっていない段階での相談からでも、お気軽にご相談ください。iOS、Androidの両プラットフォームでの開発技術を保有しており、スクラッチでの開発はもちろん、既存アプリの改修も承っております。
またSun*には、自社内にUIUXのデザインコンサルのできるデザインチームがいますので、デザインと開発を一気通貫で行うことができます。洗練されたUI(ユーザーインターフェース)のiPhone・iPadアプリを開発する事で企業におけるアプリ・サービスの活用を最大限サポートします。
新規ITサービスの立ち上げや、既存サービスの改善でお悩みのことがあればお気軽にご相談ください。