リクルート

要件定義とは?決め方・進め方・まとめ方・スキルなどを解説

date2024年10月02日
要件定義とは?決め方・進め方・まとめ方・スキルなどを解説
タグ:

はじめに

  • 要件定義とは、システム開発の流れの1つである
  • 要件定義は、「システム要件」と「業務要件」に分類される
  • ユーザの要求のヒアリング後は「必須要件」と「希望要件」に分類する
  • 要件定義書を作成する際には、要件をドキュメント化する能力が必要である
  • 要件定義の目的は、プロジェクトの失敗を防ぐことである

システム開発において、要件定義は非常に重要です。
この記事では、要件定義の意味・必要性・流れをご説明しています。
また、ChatGPTを使った要件定義書の作成方法もご紹介していますので、ご参考にしてください。

要件定義とは

要件定義とは、システム開発の流れの1つです。要件定義の決め方次第で、プロジェクトの成功が左右されるため、非常に重要であるといわれています。

要件定義は、「システム要件」と「業務要件」に分類されます。システム要件とは、発注元(システムを発注する企業)の要求やニーズを、ベンダ(発注を受けてシステム開発する企業)があきらかにすることです。また、要件定義は別名要求定義ともいわれています。

業務要件とは、システム化したい業務において必要な機能や条件を明確化することです。業務要件は、実際にシステムを使用するユーザの責任者からきちんと合意を得る必要があります。

システム開発の流れとは

一般的なSLCPの流れ

1.企画
「どのようなシステムを開発するか」「システム開発にかかる費用や期間はどれくらいか」などをあきらかにするプロセス
2.要件定義
利害関係者(社員・顧客・取引先といったシステムに携わるすべての人)から搭載してほしい機能や性能についてヒアリングを行い、合意を得るプロセス
3.開発
要件定義で話し合った内容を基にしながらシステム・ソフトウェアを開発していくプロセス
4.運用
開発プロセスで作成した製品を実際に使用するプロセス
5.保守
運用していく中で、システムの改善や機能の拡張を行うプロセス

上記は、一般的なSLCPの流れを表にしたものです。SLCP(ソフトウェア・ライフ・サイクル・プロセス)とは、システム開発における一連の流れのことです。
「ソフトウェアの一生を工程的に表したもの」と訳せる通り、企画から廃棄にいたるまでの工程を指します。

手法ごとの要件定義の必要性

システム開発には、ウォーターフォール開発やアジャイル開発などの手法があります。ウォーターフォール開発においてもアジャイル開発においても、要件定義は重要です。
以下から詳しく解説します。

ウォーターフォール開発

ウォーターフォール開発とは、「要件定義」→「設計」→「プログラミング」→「テスト」など、各工程の作業が完了してから次の工程に進む開発モデルのことです。ウォーターフォール開発は、主に大規模なプロジェクトに用いられます。

ウォーターフォールとは日本語で「滝」を意味しており、水が上から下へ流れるように順番にシステムの開発を進めていくことです。

また、一方向にしか水が流れない滝のように、ウォーターフォール開発は後戻りができません。そのため、ウォーターフォール開発の要件定義は慎重に行う必要があります。

アジャイル開発

アジャイル開発とは、「計画」→「設計」→「プログラミング」→「テスト」などの開発工程を、小さいサイクルで繰り返しながら開発していくモデルのことです。アジャイルとは、日本語で「素早い」という意味を持ち、ウォーターフォール開発よりも開発期間を短縮できる点が特徴です。

アジャイル開発では、プロジェクトの進行に合わせて要件を調整できます。そのため、基本的には「要件定義」というフェーズは設けませんが、要件のドキュメント化や仕様書が不要なわけではありません。

最初に要件定義を行うウォーターフォール開発とは少し異なりますが、フェーズごとに優先順位やスケジュールを組む必要があります。

要件定義の具体的な進め方・流れ

システム開発の前に知っておくことや、要件定義の具体的な進め方を、以下からご紹介します。

システム開発の前に知っておくこと

要件定義は内容だけでなく、担当者も重要です。プロジェクトの結果に影響を及ぼす可能性があるため、担当者の選定は慎重に行いましょう。
誰がやるか迷った際には、システム開発者やシステムに精通している方に任せると安心です。

また、要件定義の具体的な流れを把握する前に、要件定義の目的を明確にしておきましょう。

要件定義の目的を明確にするには、「システム開発における5W2H」が便利です。
以下の表にまとめましたので、ご参考にしてください。

システム開発における5W2H

要求
Whyなぜ、システム開発を行うのか
What何を実現したいのか
システム要件
How開発したシステムを使って、どのような課題を解決するのか
Whereどこ(規模)を対象にするのか
Who誰を対象にするのか
プロジェクト要件
When開発期間はいつまでに設定するのか(納期)
How much開発コストはどれくらいかかりそうか

以下からは、要件定義の具体的な流れをご紹介します。

流れ:1.ユーザの要求をヒアリングする

はじめに、システムの全体像を把握するために、ユーザの要求をヒアリングします。一般的に、ヒアリングはユーザにもっとも近い営業部門が行います。

ヒアリングの際は、ユーザの要求を正しく理解・イメージすることが大切です。ベンダ側とユーザ側で齟齬が生じると、後々トラブルに発展しかねません。

また、ユーザの要求を受け入れる前に、「実現可能なシステムかどうか」「要求された納期で間に合うか」などを、きちんと判断する必要があります。

流れ:2.ユーザの要求を「必須要件」と「希望要件」に分ける

次に、ユーザから聞き取った内容が「実現可能かどうか」と、考えながら整理していきましょう。
ヒアリングしたユーザの要求は、「必須要件」と「希望要件」の2つに大別できます。

簡単にいうと、「必須要件」とは「必ず叶えたいマストな要求」のことで、「希望要件」とは「可能であれば実現したいベターな要求」のことです。「必須要件」と「希望要件」に分けた上でユーザ側とベンダ側がよく話し合い、優先順位を明確にしましょう。
優先順位を明確にすることで、プロジェクト全体のスケジュールが把握しやすくなります。

流れ:3.要件定義書を作成する

システム開発の要件が固まり次第、要件定義書を作成しておきましょう。要件定義書を作成しておけば、他の開発メンバーとも情報が共有しやすくなるため、便利です。
要件定義書に記載する項目は以下の通りです。

流れ:3.要件定義書を作成する

要件定義書は、ベンダだけでなく発注側も確認します。開発知識がない人にも理解できるように、専門用語の使用はなるべく控えましょう。

要件定義に必要なスキル

要件定義を行う上で欠かせないスキルを、以下からご紹介します。

コミュニケーション能力

ユーザの要求をヒアリングする工程では、コミュニケーションが欠かせませんので、ヒアリング担当者にはコミュニケーション能力が求められます。要件定義に必要なコミュニケーション能力とは、「ユーザの意図を正確に把握できる能力」のことです。

一方で、ユーザの要求が実現不可能な場合は、他のメンバーに迷惑をかけてしまうため、うまく断るスキルが重要です。
交渉する際は、ユーザ・発注元の意見を尊重しつつ、ベンダ側の意見を冷静に伝えるようにしましょう。

実現可能なシステムかどうかをイメージする能力

ユーザの要求を受け入れたあとに、開発が不可能だとわかればプロジェクトが頓挫しかねませんので、ヒアリング担当者にも、開発やITの知識が必要です。知識があれば、ヒアリング時にユーザの要求が実現可能かどうかをイメージできます。

そのためには、日頃から、IT系のサイトや本で知識を得るように努めましょう。「ITパスポート」「基本情報技術者試験」などの資格を取得するのも有効です。

スケジュール管理能力

ヒアリング担当者には、スケジュール管理能力が必要です。スケジュール管理能力があれば、システム開発の流れも意識できますので、余裕のあるスケジュールを組めるようになります。

スケジュールを組む際は、「逆算思考でスケジュールを組む」ことや、「着手期限を設定する」ことを意識しましょう。逆算思考では、まずゴール(納期)を決めてからスタート(着手日)に向けてスケジュールを組んでいきます。

また、スタート(着手日)が曖昧な場合は、ゴール(納期)がブレてしまうため、着手期限を設けることが大切です。

要件をドキュメント化する能力

要件定義書を作成する際には、要件をドキュメント化する能力が必要です。
ドキュメント化とは、手順や規則などを文書として明文化することを指します。

要件定義書はIT知識のない方にもわかりやすく作成する必要がありますので、専門用語はかみ砕いて解説しましょう。また、見やすさも大切ですので、フォーマット・レイアウト・表現などは統一するように気を付けましょう。

番外編:ChatGPTを使って要件定義書を作成してみよう

以下からは、ChatGPTを使って要件定義書の土台を作成する方法を解説します。
要件定義書の見本としても参考になりますので、ぜひお役立てください。

ChatGPTで要件定義書の土台を作ってみた

ChatGPTを活用すると、従来よりも速いスピードで要件定義書が作成できます。

1

今回は、上記の質問をChatGPTに投げかけたところ、下記の8つを提示してくれました。

  • ChatGPTの回答

    1.個別の健康データ管理

    2. 健康リスクアラート

    3. 社員の健康トレンドの把握

    4. ウェルネスサポート機能

    5. データのプライバシーとセキュリティ

    6. リモート健康診断・オンライン医療サポート

    7. カスタマイズ可能なリマインダー

    8. チームビルディングと健康促進活動

次に、「1~8に配置する具体的な要素」や、「1~8の項目の画面に必要なUI要素」について尋ねたあとに、ChatGPTが提示してくれた「全体のUI設計におけるポイント」について掘り下げてもらいました。

2.png

下記は、やりとりの詳細をまとめたアプリのイメージ図です。

3.png

最後に、要件定義書のフォーマットに合うように情報をまとめてもらいました。

画像4-2.png
画像4-3.png
画像4-4.png
画像4-5.png

このように、ChatGPTを使えば、要件定義書の作成時間が大幅に短縮できます。
ただし、ChatGPTはあくまでも補助ツールですので、生成ごとにチェックや修正が必要という点は覚えておきましょう。

まとめ

要件定義の目的は、プロジェクトの失敗を防ぐことです。
要件定義がうまく設定できないと、納期の遅れ・予算オーバー・品質低下などにつながりかねません。

プロジェクトの失敗を防ぐには、利害関係者同士がよく話し合い、要件定義書の質を高める必要があります。
この記事でご紹介したスキルや考え方を、プロジェクト開発する際のご参考にしてください。

IT業界に挑戦したい23年卒の方、私たちの仲間になりませんか?
【会社選びは、仲間探しだ】IT業界に挑戦したい23年卒の方、私たちの仲間になりませんか?
株式会社セラク 開く