かんたんで複雑な、ウェブサービスの作り方を紐解くブログ

ウェブサービスの制作難易度はどうやって判断する?

UX
2021/07/26

いざウェブサービスを作ろうと考えたときに、その制作難易度がわからなければ、作成し終わるまでにどのくらいの期間がかかるのか、そしてどのくらいのお金がかかるのかを判断することが難しくなります。 とくに自社のメンバーでウェブサービスを作るならまだしも、他社にウェブサービス作成を依頼する事になったときに、依頼先のパートナー毎にまったく異なる予算やスケジュールが出てきた時にどうしたらよいのか? 今回は、ウェブサービスの制作難易度を図るための、いくつかのポイントをまとめてみます。

作成するページボリュームを見定める

制作難易度を図る上で1つ目の判断軸は「ページ数」です。当たり前ですが、10ページのウェブサービスを作るか、それとも1,000ページのウェブサービスを作るかでは、大きく作業期間、関わる人数、コストが変わってきます。 10ページであれば必要なページの中身を一つひとつ定義していっても、それほど時間はかかりません。けれどもそれが1,000ページなど大規模になれば、一つ一つのページを作るだけでも膨大な時間がかかります。 そのため一般的に、50ページ以上を超えるようなサイトとなる場合、CMS(コンテンツ管理システム)の利用が必要となってきます。 CMSを利用すると、予めページのレイアウトを決め、同じレイアウトのページであれば新たにプログラミングを行うことなく、専用の管理画面から必要な情報を入力するだけで、新たなページを作成できます。 例えばブログ記事などの場合「タイトル」「日付」「本文」など、レイアウトがだいたい同一のものが多いため、それらをCMSで管理すれば、同じレイアウトのたくさんのページを作ることができます。 このように、まずはページ数は何ページかを確認、50ページを超えてくるような場合、共通のレイアウトで作成するページがあれば、それらを作るためのCMSの導入について検討を行えば、おのずとそのウェブサービスの難易度が分かります。

会員機能の有無から判断する

例えば「ショッピングサイト」などのウェブサービスを作る場合には、ユーザーが商品を購入する際に会員登録が必要となります。 「会員登録」と書けばたったの一言ですが、会員登録の機能をサイトに付ける場合、合わせて必要な機能として「会員の新規登録」「ログイン」「会員退会」「会員情報編集」などさまざまな機能が必要となります。 加えて会員登録機能を持つウェブサービスの場合、会員になっているユーザーしか見れないページがあったり、同じページを見ていても、会員になっているユーザーの場合は、掲載されるコンテンツが変化する場合もあります。 また、それぞれの会員情報を保存しておくデータベース、それら個人情報を丁重に扱うためのセキュリティ対策が必要となるため、難易度が一気に上昇し、必要となる時間やコストも大幅に増加する傾向があります。

レコメンド機能の有無から判断する

例えばAmazonなどのサイトでは、過去にあなたが購入した商品履歴に基づいて、ウェブサービス内に表示される商品情報が変化します。これは「レコメンド」と呼ばれる機能で、この機能を導入する場合には「一人ひとりのユーザーがどんなユーザーかを判別できる」必要があります。 そして一人ひとりのユーザーがどんなユーザーかを判別するためには、そのユーザーに関するデータが必要になります。 データには、例えば以下などさまざまな種類があります。 ■ウェブサイト上をどのように移動したか? ■ウェブサイト上で過去どのような商品を購入したか? ■実際の店舗でどのような商品を購入したか? ■年齢・居住地・職業はなにか? そして、これら取得したユーザー個人個人のデータに基づいて、例えば「東京都に住んでいる会社員」などユーザーのカテゴライズを実施、そしてカテゴライズしたユーザーに最適化したコンテンツを表示します。 そしてこれらユーザー個人のデータを取得するためには、以下のような機能が必要となります。 ■ユーザー登録ができるための会員機能 ■ユーザー情報を登録するためのデータベース ■データベースの情報に基づいてコンテンツを出し分けるプログラム ■ユーザー毎に出し分けるための豊富なコンテンツ これらすべてを用意するためにはたくさんの制作物が必要となるため、難易度が大幅に上昇します。

最後に感想として

このように「ページ数」「会員機能の有無」「レコメンド機能の有無」が、ウェブサービス構築を行う上でその難易度を判断するための大きな指標となります。 これらの状況を確認しつつ、とはいえ現在では会員機能を外部サービスを利用することで簡易化する実装方法なども発達してきているため、それら新しい技術も積極的に利用し、制作難易度を判定、その上で必要なスケジュールやコストの算出を行います。