企業の情報システム組織は、システム発注の前に要件定義を行い、システムに求められる要求仕様を提示することにより、SIerへシステムの設計/構築を依頼する。SIerにとっては、与えられた要件がすべてであり、要件に従って費用を見積もり、予算内でシステムを納めることが最終目標となる。
したがって、当然ではあるが、要件が不明確な状態で発注を行うようなことがあってはならない。要件として詰め切れていない不明確な部分があると、SIerとの間で認識にズレが生じたり、思い込みで設計が行われる危険性がある。
では、明確な要件定義を行うにはどうしたらよいのだろうか。これまでの開発プロジェクトの失敗事例などから最も重要と思われる、範囲/技術/体制の3つの側面について考えて見よう。
範囲の問題 - 人が行う部分とITで実現する部分を明確に
範囲の問題として、業務の範囲が明確になっていない場合や、さらにその中で、ITを活用して実現すべき範囲が不明確な場合がある。
たとえば、在庫管理システムを例にとると、対象業務は工場の在庫管理業務なのか、倉庫や販売店を含むのか、海外についてはどうか、また、管理対象は完成品か、部材や工場内の中間在庫まで含むのか、などさまざまな"範囲"が考えられる。情報システムの開発においては、このような業務範囲から、どの範囲を対象に開発を行うのか最初に定義する必要がある。
また、業務は機能に分解することができる。例えば、在庫管理業務は、入庫、出庫、在庫量算出などに分解していくことが可能だ。このように、業務を機能に分解した上で、どの部分をITで実現するのかを明確にする必要がある。在庫管理システムでは、入荷担当者と出荷担当者が入力した入荷量・出荷量をもとにコンピュータで製品の在庫量を算出する場合や、受発注システムと連動して入出荷業務を自動化する場合が考えられる。
情報システムは、人が行う部分とITを活用して実現する部分(ITシステム)とで構成される。ITシステムは単独では情報システムとして機能しない。言い換えると、ITシステムは、人が行う業務を効率的に行うための手段にすぎない。
そもそも企業において行われる業務には、それぞれに本来の目的がある。そして、この目的を達成するために、必要なものをインプットとして受け取り、それに付加価値を与え、結果をアウトプットとして出力している。業務要件を明確にするためには、第一にこのような業務本来の目的を明確にすること、その目的のために何を入力し、何を出力するのかを明確にすることが重要である。このように、人が行う部分を含めて業務全体の要件を明確にした上で、ITシステムで実現する範囲を明確にする必要がある。
また、周辺の関連するITシステムでの改修が必要となる場合、その範囲についても明示しておくことが必要である。この部分をSIerへの発注範囲に含むかどうかで見積りの金額が倍半分と大きく違ってくる場合がある。