5分でわかる「要件定義」とは?システム開発成功のための進め方や項目、発注成功のポイントまで詳しく解説!
目次[非表示]
- 1.システム開発の「要件定義」とは
- 1.1.「要求定義」との違い
- 2.システム開発に要件定義が重要な理由
- 3.主な要件定義の流れ(業務フロー図)
- 4.要件定義で使われるツール
- 5.要件定義を進めるためにしておきたい準備
- 6.システム開発の要件定義で決めること
- 7.システム開発の基本的な流れ
- 8.要件定義の進め方とコツ
- 8.1.システム開発で要件定義を進める3ステップ
- 8.1.1.ステップ1:発注側へのヒアリング
- 8.1.2.ステップ2:要求定義を分析・検討
- 8.1.3.ステップ3:要件定義書を作成
- 8.2.要件定義を進める4つのポイント
- 8.2.1.【1】担当を明確にする
- 8.2.2.【2】既存の業務フローを把握する
- 8.2.3.【3】発注側の要望を正確に理解する
- 8.2.4.【4】わかりやすい要件定義を作成する
- 9.「要件定義の漏れ」はシステム開発の外注で失敗する原因
- 10.システム開発の最適な発注先をスムーズに見つける方法
- 11.まとめ
システム開発の「要件定義」とは
要件定義とは、発注側がシステムやソフトウェアに求めている内容や条件をまとめる作業のことを言います。発注側がシステム開発を依頼するのは、何かしらの目的があるためです。その目的が明確でなければ、開発側も何を開発すれば良いのかが不明瞭になります。
要件定義では、
- 発注側がシステムやソフトウェアに何を望んでいるのか
- 何をしたいから開発を依頼しているのか
- それに係る予算や納期はどれくらいを考えているのか
などを、発注側と開発側が十分に話し合い、共通認識を深める必要があります。
「要求定義」との違い
要件定義に似ているものに「要求定義」があります。要件定義と要求定義の違いは以下の通りです。
- 要求定義:発注側がシステムやソフトウェアに求めている仕様
- 要件定義:要求定義を実現するために必要な仕様
つまり、「要求定義」は発注側が自社の業務や提供するサービスを効率的に行うために、システムやソフトウェアに実装して欲しい仕様を定義したものです。それに対して「要件定義」は、要求定義を実現するために、開発側が実装すべきと判断した仕様を定義したものになります。
システム開発に要件定義が重要な理由
システム開発において要件定義は、プロジェクトの成否を決定づける重要な工程のひとつです。要件定義がしっかりと行われていないと、次のような弊害が発生する恐れがあります。
- 開発を何度もやり直すことになる
- 発注側の想定していたものと全く違っていた
- 発注側が望む機能や性能が実装されていない
- 無駄な機能がついてしまい予算オーバーになる
例えば、何のために誰が使うのか、どんな機能や性能を求めているのかもわからない状態で、「○○をするためのシステムを開発して」と依頼されたとしましょう。
手探りで開発をスタートして、一応形になるものが出来上がったとしても「これは求めているものではない」、「欲しい機能が実装されていない」といった事態になりかねません。その結果、開発を初めからやり直したり、仕様を何度も変更することになるかもしれません。
後々のトラブルを回避する意味でも、「発注側が何を望んでいるのか」「その要求を叶えるためにどんな仕様にすべきか」など、要件定義は明確にしておく必要があります。
▼上流工程は、こちらを参考にしてみてください。
→システム開発の要となる上流工程の流れや下流工程で失敗しないためのポイントを解説
主な要件定義の流れ(業務フロー図)
要件定義は以下のような流れで進められます。
- 発注者が解決したい問題の洗い出し
- システム全体の構成を決定する
- 機能要件や非機能要件を定義する
- 予算や開発スケジュール等を決める
- 要件定義書を作成する
これらの作業を行う際に、業務フロー図が使われます。業務フロー図とは、業務の流れを見える化した図のことです。発注側がなぜシステム開発を行いたいのか、どのような問題や課題を抱えているのかの洗い出しを行う際に、業務フロー図(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が、お客様のご要望をじっくりヒアリングさせていただき、リーズナブルで高品質なシステムを提供します。
なお、コウェルに関する詳細資料は以下でダウンロードすることが可能です。
このほか、弊社の具体的なサービスや導入事例については以下をご覧ください。
コウェルのサービスメニュー>>>
コウェルは、日本とベトナムから世界中のお客さまへ高品質なソフトウェアテスト・品質保証・オフショア開発サービスを提供しています。
コウェルの開発導入事例>>>
コウェルは情報通信、金融、流通・小売サービス、医療・ヘルスケアなど、さまざまな業界のお客様の導入を支援しています。