「要件定義」は、どのようなシステムを作るのかを明確にするプロセスです。システム開発の序盤に実施する要件定義は、最終的なシステムの品質を大きく左右します。要件定義を正しく進められなければ、期待とはかけ離れたシステムが完成してしまいかねません。
そこで本稿では、要件定義の基本的な進め方を7ステップで紹介します。現場でありがちな要件定義の失敗例と、その対策もあわせて紹介しますので、ぜひ参考にしてください。
なお、「そもそも要件定義とは何か」については次の記事で解説しています。事前情報を整理しておきたい方は、こちらを先にご覧ください。
- もくじ
1. 要件定義の進め方【7ステップ】
要件定義の進め方は、大まかに次の7ステップです。
- ステップ1 要求のヒアリング
- ステップ2 要求事項の整理・分析
- ステップ3 要求事項の優先順位付け・調整
- ステップ4 機能要件の定義
- ステップ5 非機能要件の定義
- ステップ6 要件定義書のブラッシュアップ
- ステップ7 要件定義レビュー・合意形成
各ステップについて、順番に見ていきましょう。
ステップ1 要求のヒアリング
最初に、システムを必要とする顧客から要求をヒアリングします。要件定義の出発点は、システムを必要とする顧客からの要求を正しく把握することです。顧客との対話を通して、現状の課題や実現したいこと、業務上の不満などを丁寧に聞き出しましょう。
また、現在の業務フローや使用中のツール、関係する他のシステムなど、周辺情報もあわせて把握しておくことが大切です。この段階で基本的な情報を見落とすと、前提を誤ったまま進めてしまう恐れがあります。
ステップ2 要求事項の整理・分析
次に、ヒアリングから得られた要求事項を整理・分析し、顧客のイメージを具体的な言葉に落とし込みます。この作業によって漠然としていた要望が整理され、顧客が本当に達成したい目的や、解決したい課題が見えてくるでしょう。
機能要求(システムが何をするか)と非機能要求(システムがどう動くか)に分けてリスト化することが理想です。各要求事項に曖昧な点がないか、重複や漏れがないかをチェックしましょう。
ステップ3 要求事項の優先順位付け・調整
続いて、整理した要求事項に優先順位を付け、必要に応じて調整します。システム開発には予算や日程などの制約があり、全ての要求事項を実現できるとは限りません。システム開発の対応範囲を明確にするためにも、優先順位を付けておく必要があります。
優先順位は、対応した場合のメリットや対応しなかった場合のリスク、実現のしやすさなどを踏まえて検討します。ポイントは、Must(必須項目)とWant(可能であれば対応する項目)を明確にすることです。
そのうえで、顧客を交えて協議し、どの要求事項に対応するかを明確にしましょう。実現が難しい要求がある場合は、日程や内容を調整することも必要です。
ステップ4 機能要件の定義
次に、対応する要求項目をもとに機能要件を定義します。機能要件は「システムに何ができるか」の答えとなる要件です。現状の業務フローや抱えている課題などを踏まえ、必要な機能について具体化しましょう。
たとえば「顧客情報を登録する機能」の場合、「何を入力するか」「どのような処理を行うか」「結果として何を出力するか」を明確にしましょう。あわせて、画面の構成や操作の流れ、帳票のレイアウトなども整理しておきます。
ステップ5 非機能要件の定義
続いて、対応する要求項目をもとに非機能要件を定義します。非機能要件は「システムがどう振る舞うべきか」の答えとなる要件です。機能そのものではなく、その使い勝手や性能などに関わる条件を定義しましょう。具体的には、次のような非機能要件が挙げられます。
- 性能(処理速度やデータ処理量など)
- 信頼性(障害の発生しにくさや復旧しやすさ)
- セキュリティ性(情報漏えいやサイバー攻撃への備え)
達成状況を客観的に判断できるよう、具体的な数値目標や評価指標を設定することが重要です。たとえば、信頼性に関しては「月間稼働率99.9%」といった定義が考えられます。
ステップ6 要件定義書のブラッシュアップ
ここまでに整理してきた機能要件や非機能要件について1つの「要件定義書」にまとめ、ブラッシュアップします。各要件にあいまいな記述や重複、表記の揺れがないか、全体として整合性が取れているか、などを見直しましょう。
問題や改善点があれば修正・補完を行い、要件定義書の完成度を高めていきます。
ステップ7 要件定義レビュー・合意形成
最後に、顧客や関係者を交えて要件定義書をレビューし、認識のずれや抜け漏れがないかをチェックします。事前にチーム内でレビューしてから、顧客とのレビューに臨むのが理想です。
問題や改善点があれば調整し、関係者全員が納得したうえで合意を得ましょう。ここでの認識合わせが、その後の開発を円滑に進める鍵となります。
2. 要件定義を進める際によくある失敗例と対策
要件定義には多くの落とし穴があり、失敗につながることも珍しくありません。ここでは、要件定義を進める際によくある次の失敗例6つと、それらの対策を紹介します。
- 要求が不明確なまま進める
- 現場の意見が反映されない
- 関係者間の認識がずれたまま進める
- 要件が膨らみ過ぎて収拾がつかなくなる
- 非機能要件が抜け落ちる
- 後先を考えず要件を決める
2-1. 要求が不明確なまま進める
要求が不明確なまま要件定義を進めてしまい、後から認識のずれが発覚するケースはよくあります。
たとえば「使いやすく」「スムーズに」といった抽象的な表現は、人によって解釈が異なるため、開発者と顧客の間でズレが生じやすくなります。こうしたあいまいな要求を掘り下げずに進めると、完成後に「こんなはずではなかった」という事態を招きかねません。
対策としては、5W2H(いつ、どこで、誰が、何を、なぜ、どのように、いくらで)の観点から要求を具体化し、明確な要件へと落とし込むことが効果的です。また、本格的に要件定義書を作成する前に、要求分析の内容をチームでレビューし、解釈の違いがないかを確認しておくことも大切です。
2-2. 現場の意見が反映されない
管理層の意見だけで要件が決まり、現場の意見が反映されないケースも少なくありません。その結果、システム導入後に現場で多くの不満が噴出し、混乱が生じてしまいます。
この失敗を防ぐためには、要件定義レビューに現場担当者を必ず交えることが大切です。システムを実際に運用する立場から要件をレビューすることで、現場でなければ気づけない問題も検出できるでしょう。また、現場担当者との定期的なフィードバックの機会を設け、要件の妥当性を継続的に確認することも重要です。
2-3. 関係者間の認識がずれたまま進める
要件そのものは明文化されていても、関係者によって解釈が異なり、結果として認識のズレが生じることがあります。
たとえば「表示速度は3秒以内」という性能要件があっても、開発チームは通常条件を、品質保証チームは高負荷条件を想定するかもしれません。こうした部門やチームの価値観や視点の違いから生じる認識のズレは、後の工程での手戻りを招く原因になります。
この問題を防ぐためには、各部門を交えた要件定義レビューが不可欠です。そして、要件の文言だけでなく前提や利用状況まで共有し、解釈のすり合わせを行いましょう。また、要件を記載する際に「書かなくても伝わるだろう」といった暗黙の了解に頼らず、できる限り省略せずに記載する意識も大切です。
2-4. 要件が膨らみ過ぎて収拾がつかなくなる
顧客からの要望をすべて盛り込もうとした結果、システムの要件が膨らみ過ぎて収拾がつかなくなるケースもありがちです。そうなれば、当初の予算やスケジュールを大きく逸脱し、プロジェクト全体の品質や納期に悪影響を及ぼしかねません。
こうした事態を避けるためには、前述のように要求事項のMust(必須項目)とWant(可能であれば対応する項目)を明確にすることが大切です。また、必須項目の中でも優先度を細かく設定すると良いでしょう。さらに、追加要望が出た際は必ず影響範囲とリソースを再評価し、必要であれば早期に要求やスケジュールの調整を行うべきです。
2-5. 非機能要件が抜け落ちる
機能要件を優先するあまり、非機能要件(性能、信頼性、セキュリティ性など)が抜け落ちるケースは少なくありません。機能要件が前提となるのは当然ですが、非機能要件を軽視すると、運用開始後にトラブルの原因となることがあります。
非機能要件も要件定義書へ明確に記載し、機能要件と同様にレビューと合意形成を必ず行いましょう。システムの可用性や応答時間といった項目には、具体的な数値目標を設定することが効果的です。
また、1つの非機能要件を強化すると、別の非機能要件に悪影響を及ぼすこともあります。たとえば、手厚いセキュリティ対策を施した結果、処理負荷が増してパフォーマンスが低下するようなケースです。非機能要件間のトレードオフにも注意し、全体最適を意識した設計を心がけましょう。
2-6. 後先を考えず要件を決める
目先の要件だけにとらわれ、後続の工程を考慮せずに要件を決定してしまうケースにも注意が必要です。開発・テスト・運用といった要件定義以降の工程の視点が欠けていると、後になって予期せぬ問題が発生しかねません。特に技術的、あるいはプロジェクトの制約で実現不可能な要件が含まれていると、プロジェクト全体の混乱を招きます。
こうしたリスクを避けるためには、要件定義の段階から開発・テスト・運用の担当者とも情報を共有し、可能であれば要件に対するフィードバックを受けましょう。想定される課題やリスクがあれば、要件確定前に調整を行うことが大切です。
まとめ
今回は、要件定義を確実に進めるためのステップと、現場でよくある失敗例や対策を紹介しました。
要件定義は、システム開発の成否を左右する重要なプロセスです。要求のヒアリングから合意形成まで、1つひとつのステップを丁寧に進めていきましょう。
また、実際の要件定義では認識のズレや要件の膨張など、さまざまな問題に直面することもあります。これから要件定義を行う際には、今回紹介した対策をぜひ参考にしてください。