システム要件定義に必要なスキル4つ|要件定義の主要な流れと要件定義書を解説

システム要件定義に必要なスキル4つ|要件定義の主要な流れと要件定義書を解説のアイキャッチイメージ

システム要件定義とは?


システム要件定義とは、システム開発の上流工程で、顧客の要求仕様をどのようにシステムで実現するかを明確にする工程です。

顧客の要求をヒアリングしてシステム化の目的を顧客と合意し、その目標を実現するための要件・内容を検討して、実装日程に合わせてスケジュールを設定します。

システム要件定義には、顧客の要求内容を正しく吸い上げるコミュニケーション能力やプロジェクトスケジュールの見積もり能力、開発担当者が理解できるように文書化する能力が必要です。

要求定義との違い

システム要件定義と似た言葉で、システムの要求定義がありますが、それらの違いについて説明します。

システムの要求定義は顧客がシステムで実現したい内容で、システム要件定義は要求定義を満たすためにシステムで求められる要件をまとめたものです。

顧客の要求内容について表に出ていない要求も含めて、システム化のために十分な条件をどれだけ正しく吸い上げられるかで、システムの品質が決まります。

システム要件定義の主要な流れ8つ


システム要件定義プロセスは、顧客要求の聞き取りの2工程、要件を決める3工程、要件定義書を作成する1工程、システム構築の2工程という8つの工程からなっています。

重要なのは、顧客要求の聞き取りと要件決め、要件定義書作成の部分です。

ここまでが十分に検討され、要求を満たした仕様になっていないと、構築したシステム自体が実務で使えないなどの事態が起きてしまいます。

1:顧客の要求をヒアリングする

システム要件定義では、顧客にヒアリングすることで、顧客がシステムに求めている要求内容の洗い出しを行います。

顧客にはシステム関連の知識はない場合が多いので、顧客の実務作業を理解し、バックでどのようなシステムを動かせば作業内容が実現できるかを考慮しながら必要な内容を聞き取っていく必要があります。

特にシステム化が難しい部分に関しては、人による作業を残してよいかどうかなどを合意しておかなければなりません。

2:最終的な目標設定をする

システム要件定義では、どのような結果が得られればシステムが要求を満たしているかを判断できる最終的な目標を明確にしておく必要があります。

目標には、アクセス数のような数値で表せる定量目標と、利用者の満足度のような感覚で表す定性目標がありますが、要求を満たせたかどうかを合意するためには、完了条件として定量目標を決めておいた方が問題は起きにくくなります。

3:顧客の要求を細かくタスク化し内容を検討する

システム要件定義で重要な工程が、顧客の要求の詳細タスクへの分解と内容検証による顧客要求の解析です。

顧客にヒアリングした内容について、それぞれのタスクを細かく分けていき、コンピューターが実現できるレベルまで落としていきます。

実現された個々のシステムの実際の動きを、顧客の要求する使い勝手に合わせるために、内容を細かく検討していきます。

4:スケジューリングする

システム要件定義が完了したら、システム構築の進め方、テスト計画などを含めたスケジューリングを行います。

定義されたシステム要件を実現するために、目標に合わせてデザイナーやコーダー、プログラマーをアサインします。

また、すべての要件を満たすことができるようにスケジュールを作成し、進捗の管理を行います。

実際にタスクを進めていくときには、障害やトラブルに随時対応してスケジュールし直して、システム稼働の遅延が起きないようにします。

5:システムの内容を設計する

システム要件定義では、顧客の要求内容であるユーザ要件定義を、システムで実現できるように設計していきます。

システム要件書に適切なものはどれか。システムで実現できる部分と実現できない部分を明確にし、システム化する部分についてはユーザインターフェイスを確定して、顧客に確認します。

顧客の実務に対応する形でシステムを作り込んでいくため、ユーザオペレーションとシステムの動作をイメージできる程度のプログラミングなど下流工程の知識があると仕事がしやすくなります。

6:システムを構築する

システム要件定義が完了したら、システムの構築フェーズに入ります。

システム要件定義をもとに、インプットや機能要件、非機能要件などの基本情報を反映した、プログラミングなどのシステム開発に入れるレベルの開発仕様書を用意して、作業分担を決めてデザイナーやプログラマーにタスクを渡します。

それぞれの担当者の進捗確認はスケジュールに反映し、調整して納期通りに完了できるように進めていきます。

7:テストを行い要求が満たされているかチェックする

システム構築の進捗に応じてテストを実施し、システム要件定義を実際のシステムが満たしているか、不具合がないかを確認します。

テストの計画もスケジュールに明記しておき、進捗をチェックします。

当初想定していなかった使用の不具合やトラブルが見つかった場合は、スケジュールの見直しなども必要となるので、問題が発生した場合は速やかに担当者間で情報共有し、対策を考える必要があります。

8:要件定義書を作成する

要件定義プロセスの成果物は、確定したシステム要件がすべて記述された要件定義書です。

顧客の要求をシステム側でどのように実現しているのか、システムに含まれない非システム要件部分はどこかなどが、わかりやすい書き方で記述されている必要があります。

“システム要件定義書”の基礎として、基本設計以外にシステムの範囲や流れ、実際の手順詳細などの記載内容を、ユーザにもわかる形で正確に表現しなければなりません。

“システム要件”は、システムアップデートや再構築の際にも使われますので、テンプレートなどを使ってドキュメントフォーマットを統一しておくとよいでしょう。

システム要件定義に必要とされるスキル4つ


システム要件定義を行う時に必要なスキルは4つあります。

顧客の要求を正しく吸い上げるためのコミュニケーションスキル、顧客から要求された業務要件定義のイメージを具体化するスキル、システム開発の進捗管理を行うスケジュール管理スキル、ソフトウェア要件定義として詳しくない者に分かりやすく表現できるスキルです。

個々のスキルについて細かく説明します。

2:コミュニケーションスキル

システム要件定義の段階で重要なのが、顧客の要求を吸い上げる際に必要なコミュニケーションスキルです。

情報システムを理解できていない顧客の要求に対して、コンピューターを使って実現するためにはどうしたらよいかを意識して聴き取り、システム化できる部分とできない部分を明確にして説明して、理解してもらう必要があります。

聞き取りでの抜け漏れは、最悪の場合システム開発の手戻りという事態まで引き起こしてしまうこともあります。

2:イメージを具体化するスキル

システム要件定義には、顧客の仕事の中で実際に行われている作業をシステムで実現するイメージを具体的に示すことのできるスキルが必要です。

顧客を納得させられる具体的なイメージを提供するためには、顧客の業務内容をシステムに落とし込んだ時に、プログラムがどのように動作して、ユーザオペレーションがどうなるかを理解していなければなりません。

デザイン、プログラミングなどの下流工程について知識があると、イメージを作りやすくなります。

3:スケジュール管理スキル

システム要件定義を行う上で、システム開発をスムースに進めるためのスケジュール管理のスキルが必要です。

個々のシステム要件にどのくらいの工数がかかるのか、テストにはどれくらいの時間をかけるのか、総合テストはどのように行うのかなどの規模を考え、アサインされたメンバーの能力と割ける時間を考慮して、期限までにシステム構築できるようにスケジュールします。

進捗管理とリスクコントロールも含めたスケジュール管理能力が要求されます。

4:システムをわかりやすく文書化するスキル

システム要件定義書を作成する上で、決めた内容や実現方法を誤解されることのない明確な表現で文書化することは必須です。

システム要件定義において、残さなければならないアウトプットがシステム要件定義書です。

ここであいまいな表現がされていると、システム開発の時だけでなく、更新やトラブル対応の時に誤解が起き、不具合に結びつく可能性もあります。

システム要件定義の成果物「要件定義書」に記載すべき事項3つ


システム要件定義の成果物である「要件定義書」には、システムに関する事項、顧客の要求するシステム要件と機能面以外の顧客要求を記載しなければなりません。

顧客の要求内容と、機能面以外で顧客が期待しているものはヒアリングで引き出したものです。

顧客の要求事項に加えて、それ実現するために、システムのフローや構成がどのように作られているかを記述することで、実用に耐える要件書が作成されます。

1:システムに関する事項

システムに関する項目は、システム内容を知り、実装方法を満たしたシステム要件定義書の中で要となるものです。

顧客の要求する業務システムをどのようなイメージでシステム化するかの説明と、システムを開発する側に対してのシステム要件の共有に関わる内容を盛り込みます。

:システムの概要と特徴

システム要件定義には、システムの備えた機能や特徴が記載されます。

システムの概要は、業務要件とシステム要件に分けて記述し、それぞれ全体像と特に意識すべき特徴を記述します。

業務要件は顧客の業務にかかわる部分について作成し、システム要件は開発する側のエンジニアに向けて作られます。

:システム導入の目的

システム要件定義には、システムの導入目的として、どのような機能を実現するかを記載します。

システムを導入する目的として、顧客の業務についてのどのような要望を実現するのか、そのためにどのような機能を導入するのかをわかりやすく記述し、システムが目指す方向性もつかめるように作成します。

:導入後の業務フロー

システム要件定義には、システムを導入した後に現状の業務フローがどのように変化するかを記載します。

現状の業務フローが、システムを導入した後にどのように変わるかを記述することで、システム導入時の現場の混乱をおさえることができます。

実際に業務を行う担当者にとって、現在の手順が変わること自体がストレスなので、業務上の変化が明確でわかりやすくなっていれば、ストレスを減らし、導入時の抵抗を減らすことができます。

2:顧客が求める機能に関する事項

システム要件定義には、顧客が求めている機能の中で、システムで実装される機能について、もれなく記載します。

顧客が求めている機能はたくさんありますが、システムを実装することでその機能のうちの何ができるようになるのかを記述します。

機能要件は、イメージの定まっていない顧客の要求を聞きながら、最終的に提供できるシステムのイメージを作り上げ、顧客と共有してプロジェクトのゴールを示す工程です。

3:顧客が機能面以外で求める要件に関する事項

システム要件定義には、機能以外のシステムの性能やセキュリティ、保守・運用体制などの非機能要件も記載します。

システムの機能とは関係しないのですが、システムを運用していくためには、システムの性能や効率性、セキュリティや保守・運用体制を決めておく必要があります。

非機能要件も、システム構築においてゴールとして用意しなければならないものです。

非機能要件はシステムがカットオーバーした後の運用コストに影響してきますので、事前に顧客と十分な調整を行っておく必要があります。

システム要件定義に関する知識とスキルを習得し転職に活かそう


システム要件定義は、システム開発の上流部分を担いシステムの品質を大きく左右するタスクで、関わるスキルは多岐にわたり、開発経験が必要なものばかりです。

システムの全体像を俯瞰できるシステム要件定義のスキルを持っていると、プロジェクトマネージャーやITコンサルタントといった上級の職種へのアサインが望めます。

システム要件定義をこなせる能力を身につけて、有利な転職を目指しましょう。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。