
5分でわかる!「要件定義」の進め方とは?よくある疑問や項目、発注成功のポイントまで詳しく解説!
目次[非表示]
- 1.システム開発の「要件定義」とは
- 1.1.「要求定義」との違い
- 2.システム開発の要件定義の進め方
- 3.「要件定義」のよくある疑問
- 3.1.要件定義書は誰が作るべきか?
- 3.2.要件定義は発注者・受注者どちらが主体?
- 3.3.要件定義と発注の順番は?
- 4.システム開発に要件定義が重要な理由
- 5.主な要件定義の流れ(業務フロー図)
- 6.要件定義で使われるツール
- 7.要件定義を進めるためにしておきたい準備
- 8.システム開発の要件定義で決めること
- 9.システム開発の基本的な流れ
- 10.要件定義の進め方とコツ
- 10.1.システム開発で要件定義を進める3ステップ
- 10.1.1.ステップ1:発注側へのヒアリング
- 10.1.2.ステップ2:要求定義を分析・検討
- 10.1.3.ステップ3:要件定義書を作成
- 10.2.要件定義を進める4つのポイント
- 10.2.1.【1】担当を明確にする
- 10.2.2.【2】既存の業務フローを把握する
- 10.2.3.【3】発注側の要望を正確に理解する
- 10.2.4.【4】わかりやすい要件定義を作成する
- 11.「要件定義の漏れ」はシステム開発の外注で失敗する原因
- 12.システム開発の最適な発注先をスムーズに見つける方法
- 13.まとめ
システム開発の初期段階で欠かせないのが「要件定義」です。システム導入の目的や利用範囲を明確にし、実際の開発をスムーズに進めるためには、事前に必要な機能や費用、スケジュールなどを整理しておくことが求められます。本記事では、要件定義の概要や進め方はもちろん、発注時に押さえておきたいポイントまでわかりやすく解説します。
要件定義は、プロジェクト全体の土台をつくる重要な工程です。ここでまとめられる内容は、その後の基本設計や詳細設計、プログラミング、テストなどすべてのフェーズに大きく影響を及ぼします。もしあいまいな点が残ったまま次の工程に進んでしまうと、後からの修正コストが増大し、プロジェクトの進行に支障をきたす可能性があります。
この記事を読むことで、言葉としては知っているけれど詳細まではイメージしづらかった「要件定義」の実態や進め方が把握できるはずです。システム開発の経験が少ない方や、外注先をどのように選べばよいかわからない方でも、要件定義の基本から具体的な項目までしっかりと理解できるよう解説していきます。
システム開発の「要件定義」とは
まずは、システム開発における「要件定義」とは何か、その基本を理解しておきましょう。
要件定義とは、システム開発プロジェクトを成功に導くために、必要な機能や目的、予算、スケジュールなどを明確にする工程です。ここで定義される内容が、のちの設計や開発において指針となり、プロジェクト全体の方向性を決定づけます。逆に言えば、この段階が曖昧だと後工程で何度も修正が発生し、開発費用の増大や納期の遅延につながりやすくなります。
要件定義では、まずは顧客企業やエンドユーザーが本当に求めるものを聞き取り、それをシステムとして実装できる形で整理します。そのために、業務内容や課題、予算、組織体制など多角的な視点が必要です。開発技術や実装可能な方法だけでなく、ビジネスルールや法的要件への適合など、幅広い検討が必要になります。
成功する要件定義には双方の協力が欠かせません。発注者は必要な情報を提供し、開発側は専門知識を活かして最適案を提示しながら進めることで、プロジェクトの目標を達成しやすくなります。要件定義の段階でしっかりと意思疎通が図れれば、後工程のやり直しやトラブルを大幅に減らせるのです。
<まとめ>
要件定義では、
- 発注側がシステムやソフトウェアに何を望んでいるのか
- 何をしたいから開発を依頼しているのか
- それに係る予算や納期はどれくらいを考えているのか
などを、発注側と開発側が十分に話し合い、共通認識を深める必要があります。
「要求定義」との違い
要件定義と似た言葉に「要求定義」がありますが、両者は微妙に意味合いが異なります。要求定義では、まずビジネス上の課題や解決すべき問題を洗い出して、システム導入によって何を達成したいのかを明らかにするのが中心です。一方、要件定義は、その「要求」を実現するために必要な機能や技術、開発プロセスなどをより具体的に整理していく工程を指します。
プロジェクト内で「要求定義」と「要件定義」の違いを把握しておくと、議論のズレが減り、関係者全員が同じイメージを持ちやすくなります。要求定義がゴールを示す地図であるとすれば、要件定義は実際の道筋や乗り物の選択など、具体的な計画を組み立てるステップだと考えるとわかりやすいでしょう。
このように段階ごとに視点が異なりますが、両者は切り離せない関係です。要求定義に基づいて、必要十分な要件を正しく洗い出すことで、システム開発の成功確率は高まります。
要件定義と要求定義の違いは以下の通りです。
- 要求定義:発注側がシステムやソフトウェアに求めている仕様
- 要件定義:要求定義を実現するために必要な仕様
システム開発の要件定義の進め方
システム開発の要件定義は、一般的にヒアリング、現状分析、要件整理という流れで進められます。まず、ヒアリングを通じて、現場の課題や目標を明確にし、プロジェクトの範囲を特定します。次に、課題と目的を可視化しながら優先順位をつけ、必要な機能や技術を検討していきます。
現状分析のフェーズでは、既存業務フローや問題点の把握が欠かせません。業務手順や利用中のシステム、ユーザーの操作感などを整理し、どの部分を改善すべきかを検討します。この段階で得られた情報が、のちの要件定義書に反映される大事な材料となります。
最後に、要件一覧を作成し、機能要件・非機能要件・技術要件などを文書化します。ここで定義された内容がその後の工程全体を左右するため、発注側も受注側も頻繁に合意確認を行いながら丁寧に進める必要があります。
「要件定義」のよくある疑問
要件定義の段階でよく寄せられる質問に一つずつ答えていきます。
要件定義はプロジェクト全体を決めていくうえで重要な場面ですが、初めての方や経験が浅い方にとっては、どこまで詳細に決めればよいのかがわかりにくい場合もあります。また、要件定義書を誰が作成するのか、発注前にどこまで詰めるべきなのかなど、具体的な疑問点も多いでしょう。
ここでは、経験者が陥りがちなトラブルや心配事、あるいは初めてシステム開発を発注する人が戸惑いやすいポイントを整理します。しっかり疑問点を解消してから、要件定義に取りかかることで、プロジェクトをよりスムーズに進めることができます。
特に発注と要件定義の関係は混同されがちです。要件定義のどこまでを誰が担当し、どの時点で正式に依頼をかけるのかなど、役割分担を意識しながら読み進めてみてください。
要件定義書は誰が作るべきか?
要件定義書は、発注者と受注者の両方が共同で作り上げるケースが多いです。発注者が業務内容や課題の背景を提供し、受注者側がそれを基にシステム構成や必要な機能をまとめていきます。どちらか一方だけで作成してしまうと、重要な視点が抜け落ちてしまうリスクが高いです。
プロジェクトによっては、発注者がIT知識を豊富に持ち、要件定義の大半を自分たちでまとめることもあります。一方で、受注者(開発会社)に制作ノウハウを期待する場合は、ヒアリングを重ねながら要件を深堀りしていくパターンも多いです。どちらの進め方でも、双方が意見を交わし合うことが成功の鍵となります。
要件定義は発注者・受注者どちらが主体?
基本的には発注者が主体となり、何をどこまで実現したいかを提示し、それを受注者が技術的にどのように実装するかを補う形が理想です。ただ、発注者がシステム開発の知見をあまり持たない場合、開発経験のある受注者が要件定義のリードを執ることもあります。
重要なのは、最終的なゴールをどこに置くかを両者でしっかり共有することです。要件定義はあくまで発注者が実現したいビジネスやサービスの姿があってこそ成立します。そのイメージや背景情報が開発者に十分伝わらないと、完成したシステムが実際の課題を解決できない恐れもあるのです。
要件定義と発注の順番は?
理想をいえば、要件定義をある程度固めてから正式に発注するのが望ましいです。要件が曖昧なまま発注してしまうと、開発範囲や予算、納期が大きくブレる原因になります。
しかし、要件を専門家のアドバイスを得ながら詰めたいという場合は、要件定義の工程から開発会社と契約を結ぶこともあり得ます。その際には、要件定義フェーズと開発フェーズを分割し、それぞれで契約を交わす形がスムーズです。こうすることで、要件定義の成果をもとに改めて見積もりやスケジュールを算出できます。
システム開発に要件定義が重要な理由
システム開発において要件定義は、プロジェクトの成否を決定づける重要な工程のひとつです。要件定義がしっかりと行われていないと、次のような弊害が発生する恐れがあります。
- 開発を何度もやり直すことになる
- 発注側の想定していたものと全く違っていた
- 発注側が望む機能や性能が実装されていない
- 無駄な機能がついてしまい予算オーバーになる
例えば、何のために誰が使うのか、どんな機能や性能を求めているのかもわからない状態で、「○○をするためのシステムを開発して」と依頼されたとしましょう。
手探りで開発をスタートして、一応形になるものが出来上がったとしても「これは求めているものではない」、「欲しい機能が実装されていない」といった事態になりかねません。その結果、開発を初めからやり直したり、仕様を何度も変更することになるかもしれません。
後々のトラブルを回避する意味でも、「発注側が何を望んでいるのか」「その要求を叶えるためにどんな仕様にすべきか」など、要件定義は明確にしておく必要があります。
▼上流工程は、こちらを参考にしてみてください。
→システム開発の要となる上流工程の流れや下流工程で失敗しないためのポイントを解説
主な要件定義の流れ(業務フロー図)
要件定義は以下のような流れで進められます。
- 発注者が解決したい問題の洗い出し
- システム全体の構成を決定する
- 機能要件や非機能要件を定義する
- 予算や開発スケジュール等を決める
- 要件定義書を作成する
これらの作業を行う際に、業務フロー図が使われます。業務フロー図とは、業務の流れを見える化した図のことです。発注側がなぜシステム開発を行いたいのか、どのような問題や課題を抱えているのかの洗い出しを行う際に、業務フロー図(As-Is:現状の姿)を作成します。そして、問題を解決する方法や手段を決めた後は、新たな業務フロー図(To-Be:あるべき姿)を作成します。
要件定義で使われるツール
要件定義では、発注側が抱えている問題や課題など、システム開発を実施する目的や解決策の検討・分析が行われます。その際に、次にご紹介するツールが使われます。
- 機能情報関連図
- 業務フロー図
- ER図
これらのツールを活用することで、発注側の業務の流れや抱えている課題などを視覚化できます。
要件定義を進めるためにしておきたい準備
要件定義を進める際に、次のことを準備しておくと良いでしょう。
- ITの技術と知識を身につける
- 発注側の下調べをしておく
- 要件定義漏れを予防する
IT技術の知識と技術がなければ、発注側の要望を理解し実現可能かを判断することは困難です。また、発注側の業務内容を調べておくことも必要です。なぜシステム開発を必要としているのか、どのようなユーザー層が使うのかを把握しておくことで、発注側がシステム開発に何を望んでいるのかが理解できます。
また、開発側と発注側は密なコミュニケーションが必要です。コミュニケーションが不足すると、開発側が勝手に判断して無駄な機能を実装したり、発注側の望んだ性能が得られていないといった事態を引き起こす原因になります。
このような要件定義漏れは、予算オーバーや納期の遅れが発生するなどのトラブルの元となります。発注側と開発側はしっかりとコミュニケーションを取り、要件定義漏れを防ぎましょう。
システム開発の要件定義で決めること
システム開発の要件定義では、開発側と発注側が競技を重ねて次のことを決めます。
- システム要件
- 機能要件
- 非機能要件
- 技術要件
- その他の要件
以下で詳しく解説します。
システム要件
システム要件とは、既存の業務フローが抱える問題を解決するために、要求定義通りに実装できるかどうかを決定する作業です。全てのシステムを実装すると予算オーバーしたり、そもそも技術的に無理な場合もあります。それらを考慮したうえで、実装するものとしないものを選ぶ必要があります。
機能要件
システム要件でどのような方向性で開発を決めたら、機能要件では発注側が望んでいる機能を実装できるかを決めます。
非機能要件
システム要件と機能要件以外の全ての要件を指します。システムの安定性やセキュリティ面など、目には見えませんが重要な項目です。
技術要件
システム開発に必要な開発言語やデータベースなどを意味しています。
その他の要件
システム開発を行う際に、法律に抵触していないかを確認する必要があります。
システム開発の基本的な流れ
システム開発には上流工程と下流工程に分かれています。以下ではシステム開発の基本的な流れについて解説します。
上流工程
上流工程は主に「要件定義」「基本設計」「詳細設計」といった工程を言います。発注側にヒアリングを行い、システムやソフトウェアに何を求めているかをまとめます。上流工程で要件定義漏れなどがあると、下流工程にも大きな影響を与えるためとても重要な段階です。
下流工程
上流工程でまとめたシステムの仕様や機能を、プログラミング言語を使って制作する段階です。
下流工程には次の種類があります。
- プログラミング
- 単体テスト
- 結合テスト
- システムテスト
- 運用テスト
- システム移行
上流工程で決定したとおりに開発が進むため、仕様の変更や追加があると予算オーバーや納期の遅れなどにつながります。
■関連記事:
要件定義の進め方とコツ
要件定義が苦手という人も少なくありません。そこで、以下では要件定義を進めるために必要な3ステップと4つのポイントをご紹介します。
システム開発で要件定義を進める3ステップ
要件定義を作成する際、次の3ステップが主な流れとなります。
ステップ1:発注側へのヒアリング
システム開発の上流工程で、最も重要なのが発注側へのヒアリングです。発注側は何を求めてシステム開発をしたいのか、どんな問題を解決したいのかなどを把握することが必要です。また、発注側が気づいていないことも見つかるかもしれません。この段階で要件定義漏れがあると下流工程にまで影響を与えるため、発注側へのヒアリングは綿密に行う必要があります。
ステップ2:要求定義を分析・検討
発注側がシステムに何を望んでいるかが明確になったら、実際に実装可能かを分析・検討します。その結果、「機能を実装できない」「導入すると予算オーバーになる」「納期が大幅に遅れる」といったケースも発生します。その際は、発注側が納得する代替案を用意するか、優先度の高いものから実装する必要があります。
ステップ3:要件定義書を作成
発注側とのヒアリングを通して要求をまとめたら、その内容を要件定義書という形で整理します。要件定義書どおりにシステム開発が進むことになるため、要件定義漏れには十分注意が必要です。
要件定義を進める4つのポイント
要件定義で失敗を防ぐためにも、次の4つのポイントを押さえておきましょう。
【1】担当を明確にする
要件定義を作成する際に「大まかな情報だけを伝えて開発側に丸投げ」など、開発に発注元がタッチしないといった状況は避けましょう。開発側と発注側で担当を明確にし、しっかりとコミュニケーションを取ることで要件定義漏れを回避できます。
【2】既存の業務フローを把握する
発注側は、既存のシステムでは解決できない課題や問題を抱えているからこそ、新たにシステム開発を望んでいます。そこで、発注側の既存の業務フローを把握し、「なぜシステム開発を望んでいるのか」「どんな問題を抱えているのか」を理解する必要があります。
【3】発注側の要望を正確に理解する
発注側がシステム開発の知識を持っているとは限りません。実装が難しいことでも要望してくるケースがほとんどです。しかも、ふんわりとした表現を使うことも少なくないでしょう。開発側は、発注側の言わんとすることを正確に汲み取る必要があります。発注側の要望を理解できないまま要件定義書の作成に入ると、高い確率で要件定義漏れを引き起こします。後々のトラブルを回避するためにも、システム開発に関する幅広い知識や技術が必要不可欠です。
【4】わかりやすい要件定義を作成する
要件定義書はシステム開発に大きな影響を与えます。わかりづらい、読みにくいといった要件定義書を作成すると、認識に齟齬が生まれる恐れがあります。共通認識を深めるために、誰が見てもわかりやすい要件定義書を作成するようにしましょう。
「要件定義の漏れ」はシステム開発の外注で失敗する原因
システム開発を外注する場合、要件定義は徹底して行わなければいけません。特にオフショア開発のように海外に外注する際、要件定義に漏れがあると失敗する原因になります。
国内であれば「いい感じで」といった表現でもなんとなく理解できます。しかし、海外で開発を行う場合は、日本独自の曖昧な伝え方は通じません。要件定義書に記載がなければ実装しませんし、指定がなければ仕様にない手法を使って開発を進めることも少なくないのです。システム開発を海外に外注するのであれば、要件定義は国内で開発するよりも念入りに行うべきです。
システム開発の最適な発注先をスムーズに見つける方法
システム開発の最適な発注先を見つける際は、費用相場も把握しておくべきです。要件定義にかかる費用は、作業にかかる時間で変わります。例えば、プロジェクトマネージャーが担当すると60〜100万円ほどになります。システムや機能が多かったりと、作業に時間がかかるほど費用は増加します。
また、要件定義で失敗しないためのポイントとして、以下の点も押さえておきましょう。
- システム導入の「目的」を明確化
- クライアントと開発会社でお互いの認識を統一
- スケジュールやロードマップを共有
システム開発のプロジェクトを適切に進めるためにも、要件定義を正確に行うことが大切です。もし、要件定義に不備があればプロジェクトが失敗してしまうこともあります。要件定義を的確に行い、開発プロジェクトを成功させましょう。
システム開発の最適な発注先を探す方法として、次の4つの方法が挙げられます。
- ビジネスマッチングサイトを活用する
- 展示会
- オンラインセミナー
- 関連・競合企業の口コミ
最も手軽で簡単なのは、ビジネスマッチングサイトの利用でしょう。条件を指定することで、理想の開発会社を見つけることが可能です。実際に製品に触れて選びたいのであれば、展示会に参加するのが良いでしょう。他にはオンラインセミナーや関連・競合企業の口コミなどで情報を収集するのも効果的です。
どの方法を選ぶにしても、必ず開発会社の実績をチェックすることをおすすめします。これまでの実績を把握しておくことで、開発会社の得手不得手や実力を知ることができます。
■関連記事:
まとめ
当記事では今回、システム開発の要件定義について解説しました。
要件定義はシステム開発の要といっても過言ではありません。
「要件定義は難しいから」「開発会社に丸投げすれば大丈夫」など、要件定義をおろそかにすると下流工程で失敗する可能性が高くなります。
要件定義はシステム開発の成否を握る工程なので、開発側と発注側はしっかりとコミュニケーションを取ることを心がけましょう。
オフショア開発ならコウェル!
オフショア開発とはビジネスでは海外の現地企業や法人などにシステム開発を委託することを言います。
日本国内で人件費の高騰や人材不足が慢性化してから、オフショア開発に乗り出す企業が増えました。
現在は中国・インドといったオフショア先進国の人件費の高騰もあり、ベトナムの時代に入っています。中国・インドのみならず、日本のエンジニアと比較しても遜色のないスキルを持つ点が、ベトナムの魅力です。ベトナムでのオフショア開発をお考えの担当者様はコウェルをご検討ください。
コウェルは、日本に本社を置きWEB・業務システムの開発や、EC構築の開発など、幅広いシステム開発を担う会社です。
東京「天王洲アイル」の本社ではプロジェクトをサポートする日本人PMが、お客様のご要望をじっくりヒアリングさせていただき、リーズナブルで高品質なシステムを提供します。
なお、コウェルに関する詳細資料は以下でダウンロードすることが可能です。
このほか、弊社の具体的なサービスや導入事例については以下をご覧ください。
コウェルのサービスメニュー>>>
コウェルは、日本とベトナムから世界中のお客さまへ高品質なソフトウェアテスト・品質保証・オフショア開発サービスを提供しています。
コウェルの開発導入事例>>>
コウェルは情報通信、金融、流通・小売サービス、医療・ヘルスケアなど、さまざまな業界のお客様の導入を支援しています。