本項ではシステム開発の最終確認、顧客からの要求を満たすため、システムの要件の妥当性を確認します。逆に実装しない機能を明確にすることも目的の一つとなります。

システム要件の妥当性確認

要件の合意を得るために、要件定義において作成した成果物が、「システム化の目的」「コスト·納期」を踏まえつつ、顧客(ユーザー)の意図を正しく反映しているかを確認します。その際、「要求として抽出されたが、実装対象外、つまりシステム要件対象外となった機能」、 「要件の変更管理方法」、「要件定義の制約条件と前提条件」、 「未決事項」についても、認識を共有しておくことが重要になります。いずれも開発プロジェクトの状況に応じて方針決定及び認識する必要があります。

要求の妥当性

本来、要件定義で行う作業ではなく、所謂「要求分析」で行うべき作業ですが、要件定義においても確認の意味を込めて整理します。「ビジネス要求」として整理された要求のうち、「業務要求」としてブレイクダウンされた要求の妥当性、さらに「ビジネス要求」「業務要求」として整理された要求のうち、「システム要求」としてブレイクダウンされた要求の妥当性を確認します。これは下の図の各矢印の妥当性を確認することになります。

要求から要件への妥当性

「ビジネス要求」「業務要求」「システム要求」から「ビジネス要件」「業務要件」「システム要件」として整理された各要件について、妥当性を確認します。この確認作業は、「要求」として現出したものの「要件」化されなかった事項を明確にする目的も兼ねています。つまり「先送り」の事項を明確にするということです。

これは次頁の図の各矢印の妥当性を確認することになります。例えば、「ビジネス要求」から「業務要件」にブレイクダウンせずに、「ビジネス要件」に移行した要件とは、「新ビジネス立ち上げ」「組織·人事」「マーケティング戦略」等、部門レベルでは解決できないトップダウンの意図を反映したものです。

要件の妥当性

「ビジネス要件」として整理された要求のうち、「業務要件」としてブレイクダウンされた要件の妥当性、さらに「業務要件」として整理された要件のうち、「システム要件」としてブレイクダウンされた要件の妥当性を確認します。ここではブレイクダウンされなかった要件を明確にする必要があります。

例えば、次のような要件が該当します。

・「ビジネス要件」→「新組織設立」「IT以外のビジネスプラン」「人事」
・「業務要件」→「IT以外のマーケティングプラン」「新業務フローの確立」等
・「システム要件」→今回の開発プロジェクトで開発対象のシステム機能

ここまでの確認作業について、改めて経営資源(人·モノ·金·時間)と突き合わせた上で妥当性を判断します。これは図の各矢印の妥当性を確認することになります。併せて目指すべきシステムモデルと要件との整合性を確認します。

成果物の確認

ここまでの要件定義の作業を通じて、以下の成果物を作成してきました。

  • 要求要件トレース図
  • システム全体図
  • 概念/論理データモデル (ER図用語集·データ項目辞書(データディクショナリ))
  • ビジネスルール集(要件定義レベル)
  • ToBe業務フロー及びプロセス定義(プロセスモデル)
  • UI定義(プロトタイプ)/画面遷移図
  • 上記①から⑥を含む機能要件定義書
  • 非機能要件定義書
  • アーキテクチャ要件定義書

確認された「システム要件」に基づき、機能/非機能要件が適切に定義されているか、さらに機能/非機能要件を満たすためのアーキテクチャの方向性が合っているかを確認します。⑤、⑥関しては、併せて「業務要件」を満たすプロセスになっているかの確認を行います。「未決事項」の取り扱い時間的制約により、どうしても「未決」のまま要件定義工程を終えざるをえない場合があります。

方向性が定まらないまま終えるのは問題がありますが、とはいえ、いくらでも時間をかけてよいはずはありません。プロジェクトはいくつもの制約の中で遂行されます。リソース(人、モノ、金、時間)及び技術的制約を無視して成立するプロジェクトはありません。時間切れの場合、どうすればよいでしょうか。

そのときは、次工程(設計工催)以降、つまり要件定義の後で、「何をどうするのか」を決めなくてはなりません。何らかの解決策を講じなければなりません。「不決」事項は、「システム要件」として整理された、今回のプロジェクトにおける開発対象機能の一部です。「未決」のまま置かれたことにより、もし開発が滞った場合に、「業務要件」「ビジネス要件」へどのような影響が及ぶかを、しっかりと把握しておく必要があります。

そして、次工程以降で解決したならば、その結果を「要件定義」の成果物にフィードバックできなければなりません。そのための次工程以降の「バッファ」をどのように確保するか、要件定義段階できちんと検討しておく必要があります。