国内初!bubble公式開発試験に合格!

【徹底解説】システム開発において要件定義とは?やり方を5ステップで解説!

「システム開発の要件定義って何?」
「要件定義では具体的に何をする?」
「要件定義の重要なポイントを知りたい」

本記事では、要件定義の全体像を知ってもらうために、要件定義のやり方を5ステップで解説しています。

システム設計やプログラミングを行う前の、第一段階である要件定義は、システムを作るうえでの基盤となり、今後の開発を左右します。

そのためシステム開発において、要件定義は重要なフェーズなのです。

本記事を読んで、要件定義の外観を掴むとともに、重要なポイントについても押さえておきましょう。

またこの記事では、要件定義書の書き方や要件定義の難しさ、要件定義において必須のスキルについても解説しています。

▼『システム開発』の詳細についてより詳しく知りたい方は、こちらの記事が参考になります。
【初心者必読】システム開発系の会社の種類とそのメリット・デメリットについて解説!
Webアプリとは? 仕組みと作り方を解説!

システム開発の要件定義とは?

システム開発の要件定義とは?

要件定義とは、クライアントや開発関係者と密にコミュニケーションを取ることで、「どのようなシステムを開発するのか」「どのような計画で開発を行うのか」を決定することです。

ちなみに要件と似た言葉で「要求」がありますが、この2つには決定的な違いがあります。

要求と要件の違い

要件定義の話をするうえで、要求と要件の違いは明確にする必要があります。

まず、要求というのは「~したい」という思いになります。

例えば「システムで業務を効率化したい」「集客を見込めるアプリを開発したい」などです。

それに対して要件とは「要求を実現する手段」に当たります。

つまり要件定義とは「要求を要件に落とし込んでいく作業」といえます。

また、クライアントとのヒアリングの際に、クライアント自身も自覚していない要求もあるので、そのような要求も要件に落とし込むことが重要です。

システム開発における要件定義の重要性

システム開発における要件定義の重要性

システム開発は要件定義の質で決まると言っても、過言ではありません。

要件定義が重要だと言われている理由は、要件定義で決定した事項をもとに、システム開発が行われるからです。

システム開発は、「要件定義→システム設計→開発→テスト→保守・運用」の流れで進むため、要件定義の完成度は後工程に大きな影響を与えます。

要件定義の段階で、クライアントの要望をもとに、システムに組み込む機能や実行計画が決められるため、そのあたりの設定が曖昧だとプロジェクトの進行が遅れて、結果的にミスにつながります。

例えば要件定義の時点で、クライアントの要求を全く要件に落とし込めてなかったら、いざ実際にシステムを動かしてみた時に、追加の要望や出戻りが多発するでしょう。

このように、要件定義がしっかりとできていないと、システム完成の時期が遅れてしまい、開発費の増大やシステムの質の低下を招くので、要件定義の重要性は知っておくべきです。

システム開発における要件定義の流れ

システム開発における要件定義の流れ

ここでは要件定義のやり方を、5つのステップで解説します。

要件定義では、「業務要件を検討→システム要件を検討→機能要件を検討→非機能要件を検討→実行計画を決定」の流れで進みます。

要件定義の流れを順番に解説します。

業務要件を決める

業務要件とは、業務の現状を分析して問題点を洗い出し、システムで何を実現するのかを決める工程です。

まず最初に、ヒアリングを通してクライアントの要望を抽出します。

ちなみにこの段階では、システムに何を組み込むのかなど、技術的な部分は意識しません。

なぜなら業務要件の時点で意識することは、あくまでも「業務について」だからです。

システム要件を決める

システム要件とは、業務要件で決めた業務フローを、どうのようにシステム化するのかを決定する工程です。

ここで、システム要件と業務要件との違いを区別する必要があります。

まず業務要件が「システムで実現させたいこと」だとしたら、システム要件はそのを実現するための「手段」に当たります。

ここで両者の違いをイメージしやすくするために、簡単な例を挙げます。

業務要件が「1日の運動量を知りたい」だとしたら、これを実現するシステム要件は、「スマートウォッチで心拍数を測れるようにする」「GPSから移動距離を割り出す」「心拍数や移動距離などの情報から、運動量を計算する」などが挙げられます。

機能要件を決める

機能要件とは、業務を実現するために必要な機能を決める工程で、この次に説明する非機能要件とセットで、システム設計の重要なファクターとなります。

ちなみに機能要件で決める機能とは、システムにおいて最低限必要な機能のことを指します。

非機能要件を決める

非機能要件とは、機能要件以外の要件、つまり必ずしも必要というわけではない機能を決める工程です。

この工程では「別に必要というわけでもないけど、あればいいな」くらいの要望を満たすための要件をまとめます。

また非機能要件には、セキュリティ面や可用性、レスポンスなどの観点で、システムが動作するための前提条件をまとめたものがあります。

実行計画を決める

業務要件やシステム要件などを決めたら、システム構築にかかるコストや時間の見積もり、開発の計画を立てます。

実行計画を決めたら、その計画にそって開発が行われます。

システム開発の要件定義書の書き方

システム開発の要件定義書の書き方

要件定義書とは、要件定義で決めた事項を記載した書類のことです。

この要件定義書が、要件定義における成果物になるので、書き方を知ってもらうために、書類に記載するべき項目について説明します。

業務要件の書き方

業務要件では、システムの使われ方について記載します。

業務要件を書く目的は、システム開発の際に、クライアントのニーズを意識させるためです。

具体的に業務要件で書くことは、主に「システムの概要」と「ユースケース」です。

システムの概要とは「これから開発するシステムのざっくりとした内容」になります。

また、ユースケースとは「このシステムの使われ方」を定義したものです。

機能要件の書き方

機能要件で書くことは、主に「アプリの種類」「機能一覧」「外部システム連携」で、このシステムにはどのような機能があるのか、または不要な機能を記載します。

まず、アプリの種類では「システムがWebアプリケーションで機能するのか」もしくは「スマホ向けアプリでも機能するのか」などを記載します。

次に、機能一覧で書くことは、ログイン機能やメール送信機能など「全ての機能」です。

この際、実装方法や詳細設定などについても書きます。

最後に、外部システム連携の欄で書くことは、クレジットカード決済APIなどの「外部のシステムとどのように繋がっているのか」です。

非機能要件の書き方

非機能要件で書くことは、主に「インフラ構成」「キャパシティプランニング」「性能要件」「可用性」「死活監視」「セキュリティ要件」「バックアップ計画」などです。

まず、インフラ構成では、システムを稼働させるためのネットワークやソフトウェアなどの「ITインフラの構成」を記載します。

次に、キャパシティプランニングでは「システムを利用するユーザー数」や「システムが利用される程度」を記載します。

これはシステムにかかる負荷を見積もるために、必要な項目です。

次に、性能要件では、画像表示の速度や応答率といった「システムの性能」を記載します。

また、可用性の欄で書くことは「サーバーダウンのしずらさ」です。

次に、死活監視では「システムが正常に稼働しているかを、どのように監視するのか」を記載します。

次に、セキュリティ要件の欄で書くことは「情報システムの安全性」です。

最後に、バックアップ計画では「バックアップの頻度」や「バックアップの時期」などを記載します。

システム開発の要件定義が難しい2つの理由

システム開発の要件定義が難しい2つの理由

工期遅延理由のおよそ55%が要件定義の問題と言われています。

遅延の具体的な要因は、要求仕様の決定漏れや開発規模の増大などです。

なぜこのような問題が起きるのかを、ここでは解説します。

要件定義の難しさを知ることで、要件定義を行う際に、注意点を意識して行うことができ、要件定義のミスを未然に防ぐことが可能になります。

そのため、ぜひこの点を押さえておきましょう。

クライアントのニーズを捉えるのが難しいから

クライアントのニーズは、本人も気づいてなく、変わりやすいものです。

そもそもシステム開発というのは、長期間にわたって行われるもので、数年に及ぶプロジェクトも、珍しくはありません。

そうした間に、会社の方針の変更などで、クライアントのニーズが変化することもあるのです。

また、ユーザーテストで実際に触ってみて、ニーズに気づくこともあり、クライアントのニーズを捉えることは難しいのです。

クライアントのニーズを捉えられないと、要件に落とし込むことが困難になります。

開発の各担当者間で連携が図りづらいから

担当者が異なれば、目的意識も異なります。

例えば、経営者であれば「売上増加」などが目的で、システム部門の担当者であれば「要件通りの設計」などが目的になります。

また、ビジネス部門の担当者は業務に詳しいですが、システム部門の担当者はITに詳しいです。

そうすると、ビジネス部門とシステム部門の間で知識の壁が生じてしまいます。

「目的意識の違い」や「知識の壁」があることで、コミュニケーションが難しくなるという問題が発生します。

そうなると、担当者間で連携がとりずらい環境になり、アイデアも出にくい状況になってしまいます。

システム開発における要件定義のコツ

システム開発における要件定義のコツ

ここでは、要件定義を上手く行うためのコツとして「ヒアリングのコツ」と「関係者との連携方法」を解説します。

それでは見ていきましょう。

5W1Hを意識してヒアリングを行う

クライアントとのヒアリングの際に、「いつ」「どこで」「誰が」「何を」「なぜ」「どのように」を意識しましょう。

例えば「なぜシステム化が必要なのか?(Why)」「解決したい課題は何なのか?(What)」「システムの具体的な利用シーンはどのようなものなのか?(How)」などが挙げられます。

5W1Hという視点を持っておくことで、仮説を持ってヒアリングを行うことができるようになり、より相手の要望を引き出すことが可能になるのです。

また、5W1Hの中で特に重要なのは「なぜ」を意識することです。

疑問を深掘りすることで、よりクライアント要件の解像度が上がります。

関係者と円滑なコミュニケーションを図る

各担当者との円滑なコミュニケーションは、プロジェクトの成功を左右します。

円滑なコミュニケーションのために、重要になってくるのは「1次情報の利用」です。

1次情報とは「直接仕入れた情報」という意味で、「直接見たり聞いたりして得た情報」になります。

ここで意識してほしいのは「担当者に直接聞く」ということです。

不明点がある際は、又聞きよりも直接聞いたほうが確実ですよね。

そのため、関係者と円滑なコミュニケーションを図るには、「直接聞く」「直接会って話す」などの一次情報の利用が重要なのです。

ただ、ビジネス部門にはITに苦手意識のある人が多いので、なるべく専門用語を避けて簡単な言葉で、図表などを駆使して伝えるようにしましょう。

システム開発の要件定義で求められる4つのスキル

システム開発の要件定義で求められる4つのスキル

ここでは、システム開発の要件定義に必要な能力を4つご紹介します。

要件定義の進め方に関する知識

要件定義の進め方の知識とは、体制や成果物、プロジェクトマネジメントなど、要件定義を成功させるための知識のことです。

この知識があると、よりスムーズな要件定義を行えるようになります。

この知識を得るには、ある程度の経験を積む必要があります。

システム開発に関する知識

システム開発に関する知識とは、システム化対象業務やシステム開発の専門知識のことです。

この知識が無いと、クライアントに具体的な提案をすることができなくなります。

また、要件定義においても、システム開発の知識は必須です。

目的思考とデザイン思考の能力

目的思考とは、目的に対して要望・要件を照らし合わせて、有効性の有無を評価し、有効性が低い場合は、その要望・要件を却下する思考法です。

例えば目的が「業務報告を効率化したい」で、要望・要件が「営業の可視化」「レポーティング」「入力の効率化」「IEの利用」だとします。

目的思考では、これらの要望・要件の必要性を吟味することが重要です。

デザイン思考とは、要望・要件に対して目的を照らし合わせて、網羅性を評価し、網羅性が不足している場合は、要件を追加する思考法です。

ヒアリング時のコミュニケーション能力

ヒアリングの際は、コミュニケーションを通じて、クライアントのニーズを引き出す必要があります。

そのためにも、「ヒアリング」「プレゼン」「ミーティング」「ファシリテーション」などのスキルなどが求められます。

システム開発における要件定義とは?やり方を5ステップで徹底解説! まとめ

まとめ

今回は要件定義について、詳しく解説しました。

要件定義のやり方や要件定義書の書き方などの実践的な知識は、実際に要件定義を行う上で必須の知識です。

また、それらを理解するうえでも、要件定義についての基礎的な知識は欠かせません。

今回の記事は、絶対に押さえておくべき内容が詰まってるので、本記事を読んで今後のシステム開発に、役に立てていただければ幸いです。

資料請求

Swoooのサービス資料をダウンロードいただけます。開発支援をご検討の方はぜひご一読ください。

ご相談・お問い合わせ

お客様の新規事業開発やマーケティング活動における課題解決をサポートします。
お気軽にご相談ください。

料金シミュレーション

たった2分で開発費用が分かります。
簡単な質問に答えるだけでお見積りが可能です。