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

要件定義フェーズ、けっきょく何を決めたらいい?

Management
2021/07/20

ウェブサービスやシステム開発をする際に一番大事になる「要件定義フェーズ」。名前の通り「要件を定めるフェーズ」になりますが、要件って何なんでしょうか。そして、具体的にどこまで定めれば要件定義フェーズは完了といえるのか? この辺りは色んな本を読んでみてもかなり曖昧だったり、また後続となる設計フェーズでやるべきなのかどうかなど、かなりゆるっとした部分も多々あります。なので、今回は私自身が過去「ウェブサービスとシステムを構築する」上で、最低限決めておかなければならないと感じたことをまとめてみます。

ウェブサービスの目的・ゴールが決まっていること

当たり前のようで忘れがちなのが、「作成するウェブサービスの目的」「そのウェブサイトが果たすべきゴール」「ウェブサービスに来てほしいユーザー」「来たユーザーがウェブサービス上で辿るフロー」が定められていることです。 具体的には例えば以下などです。 ■目的=「自社の製品の詳細やレビューを紹介することで、自社製品に対する理解を深めてもらうため」 ■ゴール=「製品理解を深めたユーザーが、ウェブサイトから製品を購入すること」 ■ユーザー=「自社製品の購入者は20代・単身世帯・都市部に住み年収が○○○万円以上」 ■フロー=「ユーザーは情報の検索と収集→料金の比較→お問い合わせ→商品購入の順番で遷移する」 これらを要件定義でまとめなければならないのは、この「目的」「ゴール」「ユーザー」「フロー」が一つひとつの機能・ページ・システムなどを構築する上での立ち返るべき大本の情報になるためです。 例えばプロジェクトの後になって「ログイン機能」が必要だという意見が上がったとします。その機能がスケジュールや必要コストと照らし合わせた際に「目的とゴールに合致し、必要な機能か?」「ユーザーのフローの中で必ず必要となるか?」に立ち返り、重要であればスケジュールやコストを変更してでも組み込み、必要でなければその機能の開発を見送るなどが必要になります。 そのため、プロジェクトの完了までを踏まえて、要件定義の最初にこれらを決定しておく必要があります。

ウェブサービスのページボリューム・機能が決まっていること

次に必要となるのが、ウェブサービスに必要なページ一覧と、その機能が決まっていることです。これらは先程決めた「フロー」に基づいて定義することができます。 具体的には、以下などの形で定義されます。 ■ページ=「製品情報一覧ページ」「製品情報詳細ページ」「お知らせ一覧ページ」など ■機能=「製品情報の並び替え機能」「製品情報の検索機能」「製品情報の更新機能」など まずはこれら必要なページ数を階層構造形式にてサイトマップ・DFL(ディレクトリファイルリスト)などの形でまとめ、ウェブサービスに必要なページ数をまとめます。 その次に、各ページに必要な機能を定義します。そして、機能を定義する上で、ただ闇雲に機能を算出しようとしても出し切れないため、多くの場合には「重要なページのワイヤーフレーム / 画面設計書」を何枚か作成し、それらワイヤーフレーム / 画面設計書を元に、必要な機能を定義していくことが多いです。

ウェブサービスに必要なシステムとその連携方法が決まっていること

ここまでで「フロー」「ページ」「機能」が定義されました。これらが決まった上で、最後にやるべきことは「必要なシステムとその連携」を定義することです。 例えば「ログイン機能」が必要となった場合「新規の会員登録をしてデータベースに個人情報を格納。その後ログインしてマイページを表示するシステム」などが必要となります。そしてシステムとしては、ログイン機能を持つウェブアプリケーション、加えて会員情報を登録するデータベースなどのシステム、システム間の連携が必要となります。 また「取得した個人情報を、メール配信ツールにデータ連携し、特定のユーザーにメルマガを配信する」などの場合、マイページ用のシステムとメール配信用のシステムがデータ連携しなければなりません。 加えてシステムを作る場合には、それらシステムを乗せるインフラも必要となります。現在ではAWSなどのクラウド型インフラサービスを利用してインフラ構築を行うことが主流のため、それらサービスを利用して、必要なインフラを「インフラ構成図」などの形で定義していきます。 このように、ページや機能をベースとして、必要なシステムとその連携、システムに必要なインフラを定義していきます。

最後に感想として

ここまでの大枠を決めきれば、やっとプロジェクトの全体像が定義され、要件定義フェーズ以降のフェーズにて必要なスケジュール期間・必要なメンバー・必要な予算等を定義することができます。 よく「要件定義前に全体のスケジュール感を出す」ということも求められちゃったりもするのですが、本当は要件を定めた上でないと、全体のスケジュールや予算は算出できません。 また要件定義で大枠を決めたとしても、やはり詳細な設計を行っていく中で機能などは変化していくため、後続の設計フェーズも非常に重要となります。 いかがだったでしょうか。プロジェクトの最後まで影響を与える要件定義フェーズ、少しだけ時間をかけつつしっかりやっていくのが良いのかと思います。 読んでくださった方、ありがとうございます。