「要件定義とは一体どのような用語か」「どのように要件定義を進めれば良いか」

システム開発の現場でたびたび耳にする要件定義について、上記の疑問をお持ちの方も多いのではないでしょうか。要件定義とは、クライアントのニーズを整理し、構築するシステムの概要と実現するための方向性・手順を設定することを指します。

本記事では、要件定義の概要と進め方、作成時のコツを解説します。

要件定義とは?

要件定義とは、クライアントへのヒアリング調査をもとに、構築するシステムの概要と実現するための方向性・手順を設定することです。ヒアリング調査をもとに、以下の要点を設定します。

  • 構築するシステムの概要
  • 制作にかかる予算
  • スケジュール
  • 作業メンバー
  • 作業工程

要件定義は、クライアントの要求を満たした成果物を構築するために欠かせない作業です。また、プロジェクトの実行過程で 要件定義書を見返すことで、方向性の脱線を防止できます。

合わせて読みたい

【初心者必見】要件定義とは?詳細や具体的な進め方を徹底解説

【初心者必見】要件定義とは?詳細や具体的な進め方を徹底解説

システムエンジニアの現場では必要不可欠な「要件定義」。これからプロジェクトの流れを組み立てるために理解したい方も多いのではないでしょうか。当記事では、要件定義の.....

要件定義の重要性

要件定義は、システム開発プロジェクトの成否を決定づける重要な要因です。一般的なシステム開発は、次のような流れで進められます。

  • 要件定義
  • システム設計
  • 実装
  • テスト

要件がまとまらないままプロジェクトを開始した場合、深刻なトラブルを招く可能性があります。具体的には、設計・実装・テストの各段階での大規模な修正や、納期の遅延などが発生する恐れがあります。

さらに、完成した成果物がクライアントの期待と大きくかい離していた場合、企業の信用問題にまで発展しかねません。クライアントが求める成果物を期限内に確実に完成させるためには、要件定義の段階でニーズと方向性を丁寧にすり合わせることが不可欠です。

そのため、要件定義には十分な準備期間を設けることが重要です。

「要求定義」と「要件定義」の違い

システム開発における「要件定義」に似た言葉として「要求定義」があり、両者はしばしば混同されがちですが、それぞれ異なる重要な役割を担っています。

要求定義とは、システム開発の初期段階において、ユーザーや顧客がシステムに求めるものを明確にするプロセスです。具体的には、解決したい課題、システム導入の目的、必要な機能などを洗い出し、整理します。つまり、「何を実現したいのか」という、システムに対する要望を明確にする工程です。

一方、「要件定義」は、要求定義で明確になったユーザーの要求を、システム開発者が具体的なシステムの機能や性能に落とし込むプロセスです。つまり、「どのように実現するのか」という、要求を実現するための方法や手順を定める工程です。

したがって、「要求定義」でシステム導入によって実現を希望する内容を明らかにし、「要件定義」でその希望を実現するための方法や手順を定めていく、という流れです。

「要件定義」と「基本設計」の違い

システム開発における「要件定義」と「基本設計」はどちらも重要な工程ですが、その目的と内容には明確な違いがあります。

「要件定義」は、システムに求められる機能や性能を、ユーザーの視点から明確にするプロセスです。ユーザーの要望や業務要件を詳細に聞き取り、文書にまとめます。つまり、「システムで何を実現したいのか」を定義する工程です。

一方、「基本設計」は、要件定義で定義された内容を、システム開発の具体的な設計に落とし込むプロセスです。システムの内部構造や機能、インターフェースなどを詳細に設計します。つまり、「システムをどのように実現するのか」を設計する工程です。

「要件定義」がシステムの土台となる要求を明確にするのに対し、「基本設計」はその土台をもとに、具体的なシステムの形を作り上げていくイメージです。

最終的な成果物は要件定義書

要件定義の最終的な成果物は、プロジェクトメンバーに共有する資料の他に、要件定義書が挙げられます。要件定義書とは、クライアントの要求とプロジェクトの手順を擦り合わせた結果を記載したもので、開発側が作成するケースが一般的です。

開発作業を始める前に、システムの概要や搭載機能を詳細に記載した資料をクライアントへ提出する必要があります。また、クライアントがシステム開発の専門知識を持っていない可能性を考慮し、専門用語を避け、必要に応じて解説資料を作成するなどの配慮が重要です。

要件定義の進め方

正確な要件定義を実施するためにも、基本的な進め方を理解しておく必要があります。要件定義の基本手順は、以下の3ステップです。

  1. クライアントから要求をヒアリング
  2. 要求を細分化して整理する
  3. 要件定義書を作成

本章では、各工程で押さえておくべき要点を解説します。

ステップ1.クライアントから要求をヒアリング

まず行うのは要求のヒアリングです。通常、クライアントとの接点が多い営業部門が担当します。ヒアリングでは、「クライアントが現状どのようなプロセスで業務をこなしているのか」、「システムによってどのように変化させたいのか」といった点を具体的に聞き出します。

システムの大枠となる機能から始めて、徐々に詳細な要求へと掘り下げていくことで、要件の抜け漏れや認識のずれを防ぐことができます。この段階では、要求の実現可否はひとまず置いておくことをおすすめします。

要求が出揃う前に開発工程を考慮してしまうと、後から解決策が見つかった際に要件変更の手間が生じるためです。まずはクライアントの要求を漏れなく収集し、具体的なイメージを固めることに注力しましょう。

ステップ2.要求を細分化して整理する

クライアントの要求を実際の機能レベルまで細分化し、具体的な要件として定義していきます。ただし、要求の中には実現が困難または不可能な項目も含まれることがあります。そのため、細分化の段階で各要件に優先順位をつけることが重要です。

システム開発では一般的に、クライアントの要求を「必須要件」と「希望要件」の2種類に分けます。必須要件はシステムに必ず実装する機能で、希望要件は可能な場合に実装する機能です。

このように要求を細分化して優先順位をつけることで、クライアントのニーズを満たしながら、現実的に実現可能なシステムの全体像を描くことができます。

ステップ3.要件定義書を作成

システムの要件が固まったら、要件定義書の作成に移ります。要件定義書には、これまでに整理した内容に加え、開発スケジュールや予算なども含めます。また、プロジェクトメンバーの作業能力とリソースを考慮しながら、具体的な内容を詰めていきましょう。

作成した要件定義書は、社内とクライアントの双方に提出します。開発に詳しくない方にも伝わるように、専門用語を避け、必要に応じて補足資料を用意することが重要です。

要件定義書に記載すべき8つの項目

要件定義書に記載すべき項目は以下の8つです。

  • システム導入の背景・目的
  • システムの概要
  • 業務要件
  • システムに関する要件
  • 機能に関する要件
  • 非機能に関する要件
  • 技術要件
  • 予算、人員、スケジュールなど

要件定義書の構成や内容は、開発するシステムやクライアントのニーズによっても異なります。そのため、ヒアリング結果を考慮し、認識のずれを埋められる要件定義書を目指しましょう。

システム導入の背景・目的

まずは、「なぜこのシステムが必要なのか」「どのような問題を解決したいのか」といったシステム導入の背景と目的、そして達成したい目標を明確に記述します。これにより、プロジェクトを進めるにあたり、関係者の間で認識の相違が生じることを防ぎ、プロジェクト全体の方向性を定め、関係者全員が共通認識を持つことができます。

例えば、「既存システムの老朽化に伴い、業務効率を改善するために新たなシステムを導入し、〇〇%の業務時間削減を達成する」といった、具体的な記述が求められます。

システムの概要

次に、開発するシステムはどのようなものなのか、最終的なシステムの具体的なイメージ(システム全体の構成図、用途、対象ユーザー)を含め、全体像を把握できるように記述します。システムの主要な機能、対象となるユーザー、連携するシステムなどを簡潔にまとめましょう。

システムの概要を把握することで、開発チームは具体的な設計や実装に取り組みやすくなります。例えば、「顧客管理、販売管理、在庫管理の機能を統合したWebベースのシステムで、営業担当者が外出先から顧客情報を参照したり、在庫状況を確認したりすることを可能にする」といった記述が適しています。

業務要件

システム化の対象となる現状の業務プロセス(As-Is)と、新たに実現すべき業務の流れ(To-Be)を詳細に記述しましょう。各業務プロセスにおけるデータの流れ、処理手順、必要な機能などを明確に定義します。業務要件を明確にすることで、システムが実際にどのように利用されるのかを具体的にイメージできるはずです。

例として、具体的な業務プロセスをAs-IsとTo-Beで比較しながら記述します。

業務プロセス As-Is(現状) To-Be(新システム)
顧客情報の登録・更新 手作業 Webフォーム
商品情報の検索・登録 Excel管理 データベース管理
受注処理 メールと電話 オンライン受注システム
在庫引き当て 目視確認 リアルタイム在庫管理

システムに関する要件

要件定義書の要とも言うべきシステムに関する要件では、開発工程でどのようなシステムを構築するのか、開発形態は何かなどを詳細に記載します。具体的には、以下5つの内容を盛り込みます。

  • システムの基本概要
  • システムを開発する目的
  • 開発したシステムから得られるメリット
  • 使用するプログラミング言語
  • システム導入後の業務の変化

上記の内容は、システム開発における大枠の部分です。多くの場合、案件を受注する段階で基本項目が完成します。

機能に関する要件

機能に関する要件では、クライアントが成果物に求める機能やレイアウトなどを記載します。機能に関する要件の内容は、システムの実装工程におけるゴールとなるため、クライアントと発注側に加え、SE(システムエンジニア)の認識がそろうまで調節を繰り返します。具体的な記載内容は、以下のとおりです。

  • レイアウトなどのUI要件
  • システム・データの種類
  • システムの構造や処理内容
  • 外部との連携機能

ただクライアントの要求によっては、上記以外の記載内容が必要になる場合もあります。ヒアリング調査を繰り返し、両者が納得できる機能要件を見つけ出しましょう。

非機能に関する要件

非機能に関する要件とは、システムの機能以外で求められる要件のことを指します。例えば、システムの性能やセキュリティ、保守・運用サービスなどです。

非機能に関する要件は、システム開発において重要度の高い項目ですが、具体的なイメージを持てていないクライアントも少なくありません。そのため、開発側が積極的にヒアリングを行い、具体的なイメージを描くことが大切です。

また、非機能に関する要件は、ヒアリングを繰り返した場合でも認識のずれが生じやすい傾向があります。システム開発後のトラブルを防止するためにも、要件定義書に加え追加資料を作成するなど工夫して、クライアントと細かい打ち合わせを重ねましょう。

技術要件

システム開発においてどのような技術を用いるかを明確にし、システムを構築・運用するために必要な技術的な要件を記述します。使用するプログラミング言語、データベース、OS、ハードウェア、ネットワーク構成、クラウドサービスなどを明確に定義しましょう。技術要件を明確にすることで、開発チームは適切な技術を選択し、効率的な開発が可能です。

例えば、「バックエンドはJavaで開発し、フロントエンドはReactを使用する」「データベースはMySQLを使用し、パフォーマンス向上のためにRedisを導入する」「インフラはAWSのEC2、RDS、S3を利用し、サーバーレスアーキテクチャも検討する」といった要件が挙げられます。

予算、人員、スケジュールなど

プロジェクトに必要な予算、人員、スケジュール、作業場所、使用する機器などの具体的な計画内容を含め、制約条件を記述しましょう。これらの制約条件を明確にすることで、現実的な計画を立て、プロジェクトを円滑に進められます。これらはプロジェクトの実現可能性を左右する重要な要素であり、初期段階で明確にしておくことが重要です。

例えば、以下のように具体的な計画内容を記述します。

  • 予算は〇〇円
  • 人員は〇〇名(〇〇担当〇名、〇〇担当〇名)
  • スケジュールは〇〇年〇月から〇〇年〇月まで

要件定義に必要な3つのスキル

要件定義を成功させるためには、特定のスキルが求められます。これらのスキルを磨くことで、クライアントの要望を的確に捉え、実現可能なシステムへと落とし込むことができます。

クライアントの意図を正しく把握できる

要件定義において、クライアントの意図を正確に把握することは、プロジェクト成功を左右する重要な課題の一つです。そのためには、単に要望を聞き取るだけでなく、以下のスキルが求められます。

スキル 内容
傾聴力 クライアントが抱える課題や要望を的確に引き出し、言葉にできないニーズまで汲み取る。
理解力 クライアントが言語化しきれない潜在的なニーズや、自身が気づいていない課題を、業界知識や業務理解に基づいて補完する。
共感力 クライアントの業界特有の知識や業務フローを理解し、共通言語で対話できる。

これらの能力を備えることで、クライアントの真の要望を的確に捉え、認識の齟齬がない状態でプロジェクトを進めることができます。

要求内容が実現可能かイメージできる

要件定義の担当者には、クライアントの要求が技術的に実現可能かどうかを的確に判断する能力が不可欠です。そのためには、広範なシステム開発に関する技術知識と経験が求められます。

経験の浅い担当者が安易に「できる」と判断し、結果として開発が難航し、トラブルが頻発するケースは少なくありません。要件定義段階で実現可能性を慎重に見極めることで、このようなリスクを回避し、プロジェクトを成功に導くことができます。

また、技術的な実現可能性だけでなく、予算やスケジュールといった制約条件も考慮し、現実的な解決策を提案できる能力が、要件定義担当者には求められます。

第三者にも正確に伝わるように要件を文章化できる

要件定義の成果物である要件定義書は、プロジェクトの羅針盤となる重要なドキュメントです。クライアント、開発チーム、そしてプロジェクトに関わるすべての関係者が、共通の理解のもとでプロジェクトを進めるためには、要件を明確かつ正確に文章化する能力が不可欠です。

専門用語を避け、誰が読んでも誤解なく理解できるような平易な言葉で、要件を詳細に記述することが求められます。曖昧な表現や解釈の余地がある記述は避け、具体的かつ定量的な表現を用いることで、認識の齟齬を防ぎます。

プロジェクトを成功させるための要件定義のコツ

要件定義は、プロジェクトの成功を左右する重要な作業です。滞りなく開発作業を進めるためにも、以下4つのポイントを押さえて要件定義を行いましょう。

  • 5W2Hで要求を正確に引き出す
  • 要件定義書と要求定義書のすり合わせ
  • クライアントの既存システム・業務を把握する
  • 作成した要件定義書をステークホルダーに共有する

合わせて読みたい

要件定義とは?失敗しないためのポイントとツールを詳しく解説

要件定義とは?失敗しないためのポイントとツールを詳しく解説

要件定義を失敗したくない方に向けて、要件定義のポイントやおすすめツールを解説。要件定義はシステム開発における要とも呼べる存在です。この記事を参考に要件定義のポイ.....

5W2Hで要求を正確に引き出す

1つ目のポイントは、5W2Hでユーザーの要求を正確に引き出すことです。5W2Hとは、What・Why・Where・Who・When・How・How muchの観点から必要事項をヒアリング・分析する手法を指します。

この手法を意識すると、内容の抜け漏れや曖昧さを防止でき、ヒアリングの精度が格段に向上します。5W2Hを活用した質問例は、以下のとおりです。

5W2H 質問例
What システムで何を解決するのか
Why 何のためにシステムを開発するのか・目的は何か
Where どの部分にシステムを導入するのか
Who 誰がシステムを利用・運用するのか
When いつまでに開発し導入するのか
How どのように課題を解決したいのか
How much システム開発の予算はいくらか

すべての質問に5W2Hが当てはまるとは限りませんが、多くの場面で活用できるはずです。また、クライアントの要求を正確に引き出すためには、こちらから的確な質問を投げることも大切です。ヒアリングの内容を記録し、次回のプロジェクトに活かしていく取り組みも行いましょう。

要件定義書と要求定義書のすり合わせ

2つ目のポイントは、要件定義書が完成した段階で要求定義書とすり合わせることです。

要求定義書とは、クライアントが「どのようなシステムを求めているのか」を定義したものです。開発側の視点が盛り込まれていないため、純粋なニーズ(Want〜したい)が記載されます。要件定義書と要求定義書をすり合わせることで、抜け漏れやずれを把握できます。

万が一認識のずれや要求の漏れがあるままプロジェクトを開始すると、手戻りが発生して時間やコストが無駄になる恐れがあります。こうした事態を防ぐためにも、事前にすり合わせを行い、クライアントの要求を満たしたシステムになるのかを再確認してください。

クライアントの既存システム・業務を把握する

3つ目のポイントは、クライアントの既存システム・業務を把握することです。企業の業務は、複数の業務と連携して進められるケースが一般的です。システムも同様で、複数の管理システムが連携して業務をサポートします。そのため、新たに開発するシステムが既存システム・業務と連携できるよう、事前に調査することが大切です。

しかし、長年利用しているシステムでは、情報のブラックボックス化や知識のある人が部門におらず、調査が難航する恐れもあります。この場合、可能な限り調査を進めつつ、リスクとして現行のシステム開発に盛り込むことが重要です。要件定義はシステムの開発のみならず、納品後の運用を見据えて必要事項を明確にしましょう。

作成した要件定義書をステークホルダーに共有する

4つ目のポイントは、作成した要件定義書をステークホルダーにも共有することです。システム開発のプロジェクトでは、設計からシステムの構築、運用までを複数の会社で分担するケースもあります。担当者が変われば、伝達した情報が劣化していくように、担当会社が変われば、要件の認識にずれが生じる恐れがあります。

作業担当者の認識のずれは、作業の手戻りを引き起こすため、事前に関係者を集めて情報共有を行いましょう。単に要件定義書を配布するのではなく、クライアント企業の現状やシステム開発の経緯など、バックグラウンドも共有し、担当者間の理解度の溝を埋めることが大切です。

要件定義を行いプロジェクトを成功へ導こう

要件定義とは、クライアントへのヒアリング調査をもとに、構築するシステムの概要と実現するための方向性・手順を設定することです。成果物の品質を確保しつつ、作業の手元りやトラブルを回避するために欠かせない業務です。基本的な進め方は、以下のとおりです。

  • 要求をヒアリング
  • 要求を細分化して整理する
  • 要件定義書を作成

要件定義の内容は、クライアントの要求や開発するシステムによって大きく異なります。そのため本記事で解説した4つのポイントを押さえ、システム開発のプロジェクトを成功へ導いてください。

プロジェクト管理ツール
30日無料トライアルをはじめる
  • 多機能ガントチャート/カンバン/バックログ/リソース管理/CCPM/レポートなど
  • ・ クレジットカード登録不要
  • ・ 期間終了後も自動課金なし
  • ・ 法人の方のみを対象

このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシー利用規約が適用されます。