システム開発の工程で欠かせない「要件定義」について、どのような進め方がスムーズか分からない方は多いと思います。本記事では、要件定義の概要をはじめ、スムーズに進めるためのポイントなどをご紹介します。
そもそも要件定義とは?
要件定義は、システム開発における上流工程のひとつです。具体的な内容は、目的を明確にし、それに向けてやるべき内容を具体化し、言語化することです。しっかりと行うことで、以下のメリットがあります。
- プロジェクトが計画どおり、円滑に進む可能性が高まる
- 方向性が明確になり、作業途中の変更を最小限にできる
この工程がしっかり行われなければ想定外の作業が発生し、プロジェクトに滞りが生じます。そのため、プロジェクトが成功するかどうかは、要件定義にかかっているといっても過言ではありません。
基本的な要件定義の進め方
この章では、要件定義の具体的な進め方をご紹介します。
クライアントの要求をヒアリング
まず、最初のステップとして要求のヒアリングがおこなわれます。
発注側は必ず、何かしらの目的やゴールがあって、システム開発を依頼するものです。そのため、開発会社は発注側のニーズを明確にするためヒアリングを行います。
そのため発注側は、開発の目的や本質や具体的なゴールをうまく伝えられるよう、あらかじめ準備しましょう
要求を整理し、内容を決定する
開発会社は要求のヒアリング後、要求を整理して業務内容を決定しなければなりません。発注側の目的やゴールの具現化のため、必要な作業を選定する工程に移ります。ここで開発会社が意識することはさまざまで、具体的には以下のようなことがあります。
- 現状の問題点はどのようなものか
- 結果的にどういう状態になればいいのか
- 目的達成に必要な工程はどのようなものか
この他にも、どんな方法で実装できるか、またその実装はスキルや金額的に割に合っているかなど、多岐にわたります。そのため、発注側がいくらヒアリング段階で具体的に要求を伝えても、金額面や工数面から、全てを実現することができない可能性もあることを念頭に置いておきましょう。
要件定義書の作成
内容を決定したら、開発会社は要件定義書を作成します。これは、発注側からヒアリングした要求や目的、具現化に必要な工数や作業内容をまとめた書類のことです。
発注側はすみずみまで目を通し、認識を合わせる必要があります。万が一見落としがあって、それに後から気付いた場合、修正が発生することで工数が増え、費用の増大につながってしまうためです。
ヒアリングでいくら要求を具体的に伝えたとしても、お互いの認識や解釈がズレている可能性はゼロではありません。
要件定義に必須となるスキル
要件定義を行うには、以下のスキルが必須といえます。スムーズにうまく進めることができる人材の条件として、参考にしてください。
コミュニケーション能力
まず必須なスキルとして、コミュニケーション能力が挙げられます。コミュニケーション能力が不足することで、お互いの認識にズレが生じた場合、プロジェクトの最中に大幅な出戻りが発生する可能性もあるからです。
要件定義を行う際には、発注側の要求や目的を認識の齟齬のないように汲み取らなければなりません。そして、それを正しく理解してもらうよう、伝える義務があります。
スケジュール管理能力
スケジュール管理能力も必須のスキルです。理由は以下のとおりです。
- 納期に間に合わなくなる可能性が高いから
- 人員や工数など、リソース不足に陥るから
開発会社は必ず、発注側と約束した納期に間に合うように納品しなければなりません。かといって余裕を持たせすぎても、スケジュールに空白が生まれてしまいます。そうなるとその間は他の仕事ができず、機会損失になるリスクもあります。そのため、スケジュール管理能力は必須となります。
文章力
要件定義書は、基本的に文章で作成されるため、文章力も必須です。
文章能力があり、誰が見ても同じ認識で伝わる論理的な文章は、プロジェクトの進捗をスムーズにします。文章力がないと、読む人によって認識が変わり、プロジェクトの目的を統一できないリスクも生まれます。
スムーズな要件定義の進め方
要件定義をスムーズに進めるため、意識するポイントを3つ紹介します。
目的や優先事項を明確にする
まずは目的や優先事項を明確にすることです。目的や優先事項が明確になっていないと、ヒアリングやプロジェクトの進捗に時間がかかるからです。
目的があやふやではヒアリングも進みません。いざ要件定義書ができても、発注側との認識にズレが生じます。そうなればお互いにとって時間の損失です。
そのため発注依頼側は、現状でどんな悩みがあり、どんな状態になれば満足できるのか、正しく正確に伝えましょう。
仕様の確認を入念に行う
開発会社が作成した要件定義書を、入念に確認することが大切です。見落としがあるままプロジェクトが進むと、最後の納品時に、想像していた出来栄えと大きく異なってしまう恐れもあります。
もしプロジェクトの最中で不備に気付いて連絡した場合、出戻りや修正の対応による工数が増え、費用の増大につながってしまう恐れもあるためです。
両者の認識をこまめに共有する
両者の認識をこまめに共有することも大切です。開発会社と発注側では、認識に少なからず違いがあることが多いためです。要件定義書を確認のうえ、不明な点があればこまめに共有しましょう。
機能要件と非機能要件の違いとは?
要件定義では、以下の言葉がよく使われます。どちらも開発要件の種類の違いをあらわす言葉です。この章では2つの違いについてご紹介します。
機能要件
機能要件とは、主に発注側が求めるゴールを具現化するため、必ず必要となる機能や挙動のことをいいます。そのためこの機能要件は、ヒアリングの際に必ず触れる内容です。
非機能要件
一方の非機能要件は、発注側が求める機能以外の要件のことです。発注側が求めるゴールには直接関係ないため、二次的な意味合いで使われます。
具体的には、ボタンの配置や色やデザイン、日時切り替えや反映月日のタイミングなどです。そのため非機能要件は、発注側の目的やゴールの達成より、発注側の満足度向上の目的で利用されます。
つまり非機能要件をしっかり定義する開発会社は、満足度の高いシステムを納品してくれる傾向にあります。
まとめ
以上、要件定義の概要や進め方、機能要件と非機能要件の違いなどをご紹介しました。
プロジェクトの成功のためにもヒアリングでゴールを伝え、プロジェクトが始まる前に要件定義書を読み込み、認識の齟齬を減らすことが重要です。気になる点があればこまめに共有し、円滑にプロジェクトを進めていきましょう。
なお、弊社ではPoCの相談も承っております。以下のリンクから無料で相談できますので、ぜひお気軽にご相談ください。