システム発注者が後悔しない要件定義のための準備とは?
今回も前回に引き続き、発注者視点で行う要件定義について投稿します。
新規事業向けシステム開発の要件定義の極意
Part1 【要件定義で行う作業の流れ】
Part2 【要件定義の重要性と、その具体的な準備方法】 ←今回はココ
Part3 【業務フローの作成】業務の洗い出しと業務プロセス
Part4 【業務フローの作成】業務フロー図の作成
Part5 【システム化の範囲を定める】〜【データ量を予測する】
Part6【事業展開に応じたシステムの拡張を検討する】〜【関係者で見直す】
Part7 【まとめ】
前回は要件定義で行う作業の流れについて解説し、作業の全体感を把握できたかと思います。今回は、要件定義の準備の1つ「サービス内容を具現化する」に焦点を当て、要件定義の注意点や考え方を解説します。
システム開発において要件定義はかなり重要です。システム開発の要件定義を行う際、発注者があらかじめ要件定義の準備をしておくことによって、コストや時間の削減、リスクの軽減、品質の向上が実現できます。システム開発はかなりコストがかかるため、要件定義の準備をして望むことを強くおすすめします。
- 新規事業のためにシステム開発を行う
- システム開発で絶対に失敗したくない
- 発注者が要件定義の前に何をすべきかを知りたい
そんな方は、ぜひ最後までご覧ください!
※このコラムの内容は動画で公開しています。Youtube版はこちらをご覧ください。
これから要件定義についての説明をしますが、理解を深めて頂くために具体的な例を挙げて説明します。まずは、その前提となる設定から入ります。
業界の現状などそれっぽくしていますが、あくまで架空のお話ですのでご了承ください。
前提
設定は、あるショッピングセンターを運営する企業が「フードコート座席順番待ちアプリ開発」を行うというものです。
このアプリについては以前投稿した「システム企画書を作る Part2」で使ったもので、企画書のサンプルもダウンロードできますのでぜひご確認ください。
(別資料:システム企画書(例))
さて、システム開発に入る前は、システムの企画ができているという前提でした。
本件においても、企画はできており、要件定義に入る前の準備を進めていくところから解説します。
まずは、前回のおさらいです。要件定義の準備をしておくことによって、以下の3つを実現できます。
- コストと時間の削減
- リスクの軽減
- 品質の向上
そして、次の準備をしておくことで要件定義がスムーズに進むということを解説しました。
サービス内容を具現化する
まずは、サービス内容を具現化することをはじめます。このショッピングセンターで、どのようなサービスを行いたいのかと言うと、
- アプリを使ってフードコートの座席の順番待ちができる
- そして、順番待ち登録をされた方にクーポン券を発行する
というものです。この内容を具現化すると、以下のようになります。
「アプリを使ってフードコートの座席の順番待ちができ、順番待ち登録をされた方にクーポン券を発行する」というわずかこれだけですが、内容の具現化では18項目が列挙されました。しかし、これではまだ十分ではありません。
その理由を説明する前に、必ず理解しておきたい点があります。それは、要件定義では曖昧な表現をしてはいけないと言うことです。定義した内容が、人によって違う解釈がされるようではいけません。
「今は要件定義の準備であり、要件定義の前段階なので、あえて細かく詰めていない」「詰めていない点はどこだと認識できている」ならばいいですが、自分で曖昧さを認識できてないならば、人によって違う解釈ができるかは自身に問いかけてください。
では、先ほど挙げたものはどうでしょう?少し考えてみてください。
何か気がつきましたでしょうか?実は、この7つに曖昧さが隠れています。
それでは順に内容を確認してみましょう。
4.会員登録はメールアドレスの他に、SNSアカウントでも登録できる
これはどこが曖昧だと思いますか?
それは、SNSアカウントとは何を意味しているのかという点です。SNSというのは、Facebook? X(旧Twitter)? LINE?また、厳密にはSNSではないですが、Googleアカウント、AppleID、au IDなどでも同様のことができますが、それも含めるのか?
「全部あれば、その方が便利」と片付けることもできますが、その分開発コスト・保守コストが上がります。これは曖昧な表現の一つです。
5.会員登録では、ニックネーム、郵便番号、お子さんの情報を必須で登録してもらう
これはどうでしょう?「お子さんの情報」が、それに当たります。お子さんの情報とは何を指しているのか。お子さんの名前?通っている学校?身長・体重?好きな教科?生年月日?性別?
アプリの目的だけを考えるならば、通っている学校や、好きな教科が関係するとは思えませんが、マーケティングの関係で、少しでも多くの情報を取りたいというケースもあるかもしれません。こちらもまた、曖昧な表現です。
10.予約の際は人数を入力する
アプリの目的からすると大人の人数・子供の人数をそれぞれ入力する必要があると思われます。会員登録で子供の情報を入力したとしても、当日は大人だけで来店し、便利だからと言って大人だけで利用されるようなことがあるかもしれません。あるいは大人1人と子供4人の場合と、大人4人と子供1人だと必要なテーブルの広さも変わってくるかもしれないからです。
11.予約の際は子供用いすの要否を入力する
これは、前項にある「予約の際は人数を入力する」と関係してくるところです。子供用椅子の要否だけでは、いくつ必要なのかが分かりません。また、子供が2人と分かったとしても、そのうちいくつ子供用椅子が必要なのかは分かりませんので、子供用いすが必要と答えた場合、その人数を入力してもらうことが必要です。
12.予約の待ち時間が長くなる場合、当日限定のデジタルクーポンが発行される
曖昧の典型です。「長くなる」というのは、5分なのか1時間なのかが分かりません。長い・短い、大きい・小さいという表現は止め、具体的に定義が必要です。
17.アプリはスマホで利用する
ここでのスマホとは、iPhone、Android両方でしょうか?「普通どちらもだろう」と考えたくなるところですが、まずはiPhoneからということもありますので、エンジニアとしては明確にしておいて欲しいところです。
18.外国人向けにも対応する
外国人と言うと英語を思い浮かべるのは私だけかもしれませんが、このアプリで求めているのは、英語に対応すればいいのでしょうか?
このショッピングセンターは、ある特定の国の観光客が多いかもしれません。そう考えると、英語だけなのか、あるいは韓国語、中国語が必要なのかを明確にする必要があります。
要件定義は基礎工事
「このような細かいことを言い出せば、開発が進まない」という方もいらっしゃることでしょう。以前の投稿で、同じIT業界の人で「要件定義は細かいことは話さない、基本設計で詳細を詰めます。」という人がいることも紹介しました。
(→【危険】甘く見るとシステム開発で失敗します!要件定義にまつわる本当にあった怖い話3選)
しかし要件定義の準備、そして要件定義で細かく詰めたつもりでも、間違いなく、開発が進むと各工程において検討不足だった点が浮き彫りになります。
要件定義は、家やビルを建てるための基礎工事を行っていると思ってください。もし基礎工事で漏れがあり、ビルを建て始めてからそのことに気が付いたらどうなるかを想像してください。要件定義はそれほど重要であるからこそ、その準備も念入りにすべきなのです。
そもそもユーザ側は、システム開発に不慣れです。不慣れな人が、細かい内容は後から決めても影響があるか、ないかの正しい判断には至りません。もし、判断を後に回したようなことがあれば、そのことは要件定義の段階で必ず、SEへ伝えましょう。
まとめ
今回は要件定義の重要性と、その具体的な準備方法について解説しました。
要件定義はシステム開発の基礎であり、成功の鍵を握る重要なステップです。曖昧な表現を避け、詳細な部分までしっかりと定義することが必要です。新規事業のためのシステム開発を成功させるためには、発注者としての理解と準備が不可欠、要件定義の準備を綿密に行ってください。
次回も、さらに詳しく要件定義の進め方について解説していきますのでぜひご覧ください。