「要望」「要求」「要件」の違いは?

技術的な問題としては、要件として何をどこまで決めたらよいのか、どのように決めていくのかが不明瞭な場合がある。

要件定義を進める過程では、経営者、業務担当者、IT担当者から、さまざまな要求が出てくる。要求には、経営や事業方針に関するものから画面の使い勝手に関するものまで、さまざまな粒度のものがあり、これらの要求事項を管理する技術が求められる。

要求事項は、「要望」「要求」「要件」に分けて考えることができる。要望とは、関与者が漠然と考えている、「~したい」という希望やニーズ、期待する成果などである。また、要求とは、要望を整理して目的を明確にし、実施項目に展開したものである。どちらも、情報システムとして実装するには、まだぼんやりとした内容である。要件とは、情報システムにおいて満たすべき項目であり、実現可能なレベルで明確に記述した要求事項である。実現した業務システムは、要件を満たしているかどうかで評価される

要件定義においては、関与者からの要求事項を、このような粒度に応じて分析し、情報システムとして実装可能な要件へブレークダウンする技術が求められる。ブレークダウンされた要件は、業務本来の目的に照らして必要不可欠なものでなければならない。また、曖昧な部分があってはならない。

要件の曖昧性を排除するためには、数値で示すことが重要なポイントである。数値化されていない要件は人によって基準が異なる。例えば、「業務を効率的に行うことができるレスポンス」は、5秒なのか1秒なのか、人によって判断が分かれる。業務の内容や実施の頻度、ITでの実現コストなどを勘案して数値化しておくことが必要だ。

機能要件、非機能要件、制約条件

要件は、さらに、機能要件、非機能要件、制約条件に分類することができる。発注者は、これらの要件を漏れなく明確に定義した上で、SIerに開発を依頼する必要がある。

機能要件は、業務を実現するために何をすべきか、という情報システムの振る舞いを決める要件である。言い換えると、何のために何をするかという機能性に関する要件である。業務機能の定義や業務プロセス、データ、アプリケーションの機能などに関する要件が該当する。また、非機能要件は、業務機能をどのように実現すべきか、という情報システムの性質を決める要件であり、性能、信頼性、セキュリティ、移行、運用、保守などに関する要件が該当する。非機能要件は、おもにITアーキテクチャーやハードウェア/ソフトウェアなど、ITインフラの選択に影響を与える。

特に最近では、既存の業務システムを再構築するプロジェクトがほとんどであり、業務やITシステムの移行に関する要件が重要になっている。このため、新しい業務システムの要件に加えて、既存システムの仕様やデータに関する情報をSIerに提供することが必要不可欠となっている。長年に渡って繰り返されたメンテナンスの結果、現状を表す仕様書が存在しないという場合もあるが、現状の業務を捨て去ってまったく新たな業務を開始するという場合でもない限り、既存のシステムを意識して移行のための要件を検討する必要がある。

一方、制約条件は、システムの振る舞いや性質から導かれるものではなく、あらかじめ外部から前提条件として与えられる設計上の制約事項である。法制度への対応や標準への適合性、社内の開発基準への準拠などが該当する。

要件を確定していく作業は、関与者によるレビューを実施することにより行われる。レビューでは、定義された要件について、

  • 業務の目的に適ったものか
  • 曖昧な表現がないか
  • 業務システムを構築する上で必要十分な要件が記述されているか
  • 要件の間で矛盾が生じていないか
  • 期間やコストを勘案した実現可能なものか

などの観点で要件の確認を行う。