要件定義とは?

要件定義とは、システム開発においてプロジェクトの成否に関わる極めて重要な工程です。取り組む内容としては、プロジェクトの目標や目的、システムに求められる機能、制約、必要なリソースなどを明確に定義します。要件定義を行うことで、プロジェクトの範囲や方向性を明確にし、スムーズな進行を図ることができます。この記事では要件定義のポイントについて、わかりやすく解説します。

 

1.要件定義とは

世の中にはさまざまなシステムが存在しますが、こうしたシステム開発のゴールは発注元(以下、ユーザーと表記)の要求を実現することです。要件定義とはシステム開発に際して、必要な機能やユーザーの要求をまとめて解決策を定めることにあります。 

要件定義はシステム開発の上流工程のプロセスであり、システム開発にあたって、ユーザーの課題や要求を明確にし、実装する機能や性能などを定義します。さらにプロジェクトをどのように進めていくかを決定します。要件定義ではユーザー側の要望を引き出し、整理することから始まります。その上で具体的な開発工程を設計するために業務フローや業務のシナリオを作成していきます。

要件定義の工程では成果物として要件定義書を作成します。要件定義が完了後、基本設計の工程に進みます。システム開発の流れは下記の工程に従って進行します。要件定義は最も上流に位置する初期の工程の1つです。上流工程の取り組みが、開発するシステムの品質にも大きく影響します。

上流工程 : 1)要件定義 / 2)基本設計 / 3)詳細設計
下流工程 : 4)プログラミング / 5)単体テスト / 6)結合テスト / 7)運用テスト / 8)運用保守


システム開発の流れについては「システム開発の手順と流れ」の記事でも説明していますので是非ご覧ください。 

【補足】要件定義の目的と成果|IPA (独立行政法人 情報処理推進機構)

 

 

2.要件定義の進め方と開発者に必要なスキル

システム開発の成否を分ける要件定義は、ユーザーの要求を抜け漏れなく引き出し、情報を要素分解するスキルが開発側には必要です。その上で、必要とされる機能やサービスを抽出した上でステークホルダーと合計形成を行うことが求められます。

要件定義の大まかな進め方は以下の様になります。

1)ビジネス要求を定義する
ビジネス要求とはユーザーやステークホルダーが必要とする業務上の要求事項です。基本的にはユーザー側が要求をまとめる必要があり、定義されたものを軸にその先の要件定義の工程が進められます。ただしまとめるためのテンプレートは、開発側から質問シートとして提供いただける場合があるので、必要に応じて双方で確認しましょう。ユーザー側で既にまとまっているプロジェクトシートの連携でも問題ない場合も多いです。

2)システム化要求を定義する
システム化要求とは、システムや運用環境、画面や帳票などのUI、外部インタフェースに対する要求事項を構造化したもので、先述のビジネス要求をもとにしてまとめます。ユーザーによってまとめられたビジネス要求から、開発側が定義化を進め、齟齬等がないかを確認しながら確定していきます。

3)ステークホルダーと合意形成したものが「要件」となる
「ビジネス要求」と「システム化要求」を要件定義書として文書化して、ステークホルダーと合意します。最終的な要件定義書は開発側によって作成され、開発中に随時確認する要となる資料です。(詳しくは次の章で説明します)

 

上述のように要件定義を進めるためには、開発側に求められるスキルとしてユーザーの要求を引き出すスキルや実現可能なシステムの設計を行うスキル、実現可能なシステムの設計を把握するスキルが必要となります。そのため、要件定義に関わるシステムエンジニアにとっては、ビジネス要求をわかりやすく言語化したり可視化に長けていないユーザーの場合でも、円滑なコミニュケーションを行い、ヒアリングを行うスキルが極めて大切となります。

 

3.要件定義書作成の流れ

要件定義書とは、要件定義の工程で作成される成果物であり、システムがどのような機能や特性を持つべきかを明確に定義するための文書です。

要件定義書はシステムのユーザーや開発関係者など利害関係者が共通した理解を持ち、プロジェクトの方向性を確立するための重要な文書となります。要件定義書が明確であれば、開発プロセスがスムーズに進み、ユーザーニーズが反映されたシステムの開発につながります。

 

要件定義書には主に以下のような情報が含まれます。

項目 情報の内容
1)導入 プロジェクトの背景や目的、システムの必要性や概要が記載されています
2)利害関係者 システムのユーザーや関連する組織等、ステークホルダーについての情報が含まれます
3)機能要件 システムの機能が明確に定義されます。また操作方法、データの処理方法などが記載されています
4)非機能要件 機能以外の要件が記載されます。パフォーマンス、セキュリティ、信頼性などが非機能要件に該当します
5)制約条件 プロジェクト実施における制約条件や制限事項が明確に記載されます。予算、スケジュール、技術的な制約などが含まれます

また、要件定義書は以下の3つの大きなプロセスを経て作成されます。

1)ユーザーから課題や要求のヒアリング
2)要求の細分化と抽出
3)要件定義書の作成

 

要件定義の工程では、ユーザーのニーズや要望、課題を分析します。その上で必要とされる機能やサービスに対する「要求」を細分化し抽出します。それから、システムに関係するステークホルダー(利害関係者)と合意して、「要件定義書」としてまとめます。

 

4.要件定義を成功に導く3つの重要ポイント

要件定義を成功に導くためには、複数の重要なポイントがあります。以下に説明します。

1)要件定義を開発担当者に丸投げしない
要件定義のプロセスをシステム開発担当者に丸投げするのではなく、システムのユーザー側に責任があることを認識することが大切です。
なぜなら要件定義があいまいな状態でシステム開発を進めてしまうと、ユーザーの要件を満たさないシステムが納品される可能性があるばかりでなく、開発途中で仕様変更や手戻りが発生し、コストアップの発生やスケジュールの遅延によって、納期が遅れるリスクが発生するからです。

 

2)固定観念を捨て、ユーザー部門も積極的に関与する
さらに、「要件定義はシステム部門の役割」といった固定観念をなくすことが大切です。
開発されたシステムの利用者はシステム部門の担当者ではなく、業務に関わる担当者であり、ユーザー部門の責任者になります。そのため、開発したシステムから成果を得るためにはユーザー部門の積極的な関与が大切です。ユーザー部門は日常業務に追われがちで、ただでさえ忙しい中、要件定義に関わる時間を割くことが難しい場合もあるでしょう。しかし成功するシステム開発のためにもユーザーの関わりが大切です。

 

3)ニーズは変化することを意識する
企業を取り巻く環境の変化が加速しています。事業運営においても、現在行っていることが、今後も同じように続くとは限りません。
システム開発においても、構築したシステムが将来的な事業環境にマッチするとは限らず、ニーズが変化することもありえます。現状維持を望む業務部門では「今のままで良い」といったニーズかもしれませんが、特にDXの開発では既存業務をデジタル化するデジタイゼーションするだけでなく、トランスフォメーションである変革を意識する必要があるでしょう。

 

5.まとめ

要件定義とは、システム開発プロジェクトの成否に関わる極めて重要な工程です。ユーザー側がアウトプットする、開発側がインプットするだけではなく、双方で協力してしっかり作り上げることが大切です。またその先の工程が進む中でも要件定義書=「確固たる正」として扱うのではなく、状況に応じて要件定義書自体の更新や修正も必要であり柔軟に対応するもの、と共通認識があるとなお良いでしょう。

この記事では要件定義のポイントについてまとめましたので、要件定義について理解を深め、システム開発のプロジェクトを成功に導く参考としてください。

情シスNavi.では、本コラム以外にも、情報システムの開発に関わるさまざまなコンテンツを提供しています。是非確認してみてください。

関連記事

カテゴリー:

ナレッジ情シス知恵袋

情シス求人

  1. チームメンバーで作字やってみた#1

ページ上部へ戻る