システム開発における要件定義の進め方・成果物・必要なスキルについて解説!

システム開発における要件定義って難しいですよね。 「要件定義はどのように進めるの?」 「成果物(要件定義書)って何を書けば良いの?」 「要件定義にはどんなスキルが要るの?」 など、様々な疑問が出てくるかと思います。 今回の記事では、システム開発における要件定義の進め方、成果物(要件定義書)に記載が必要な項目、必要なスキルについてお話します。

システム開発における要件定義とは最初の工程である

amela.co.jp news image 1

そもそもシステム開発における要件定義とは何かというお話ですが、簡単に言うと、ユーザーのニーズを満たすための解決策を決めることです。 ユーザーのニーズを満たすための解決策を考えるためには、どんなシステムを作れば良いか、どんな機能を持たせるか、誰がいつ使うのかなど、具体的に決めなければいけないことがいろいろとあります。 この役目が要件定義であり、この要件定義を明確にすればするほど、後の工程がミスなくスムーズに進むようになります。 システム開発の最上流の工程である要件定義は、まさにシステム開発の全てを左右すると言っても過言ではないくらい大切な工程です。

システム開発における要件定義の手順・流れは3ステップ

amela.co.jp news image 2

システム開発における要件定義の手順・流れは、大きく分けて3つの段階に分けられます。

  1. 顧客へのヒアリングをし、ニーズを明確にする
  2. 顧客のニーズを細分化する
  3. 要件定義書を作成する

では、それぞれについて解説します。

  1.  顧客へのヒアリングをし、ニーズを明確にする 

まずは顧客のニーズをしっかりと漏れなくヒアリングしましょう。 また、単にどんなニーズを満たしたいかだけでなく、具体的にどのようにニーズを満たしていくかという話を、ひとつひとつしていきます。 顧客のニーズは、5W2Hを意識し、文章に落とし込んでいくと良いです。 つまり、「なぜそのシステムが必要なのか」「誰が使うのか」「どこで使うのか」「いつ使うのか」「どのような機能を持たせるか」「どのくらいの頻度で使うのか」「何をしたいのか」を明確にするのです。 そうすることで、顧客のニーズを漏れなく汲み取ることができます。 顧客へのヒアリングの場では、積極的にこちらから質問をすることも大切です。 なぜなら、顧客はシステム開発に関しては知識がないことが多いため、何がわからないかすらわからないケースがよくあるからです。 こちらから顧客が抱えているであろう悩みを言語化することで、顧客も自分自身の伝えたいことを伝えやすくなります。 「顧客の言いたいことはこういうことだろう」という仮説の精度を高めるには、豊富な実地経験と高いコミュニケーションスキルが必要です。

  1.  顧客のニーズを細分化する 

顧客のニーズを聞き出したら、それを細分化し、それぞれについて掘り下げて考えます。 ニーズを様々な角度から見て、問題点をあぶり出し、解決策を練ることが大切です。 また、満たせるニーズと満たせないニーズの仕分けもこの段階でします。 ニーズの充足には優先順位をつけるべきです。 例えば、必須条件、希望条件という風にカテゴライズします。 そしてそれらを文章化、データ化して、顧客やシステム開発プロジェクトチームのスタッフと共有できるようにしましょう。

  1.  要件定義書を作成する 

システム開発に必要なもの、必要でないもの、必要なものを実現する方法などが固まったら、それを要件定義書に落とし込みます。 要件定義書は、顧客やシステム開発プロジェクトチームのスタッフも見るため、誰が見ても理解できるようなものにしなければなりません。 また、誰が見ても同じように解釈できる内容にする必要もあります。 質の高い要件定義書を作成するコツは、とにかく必要な情報は全て記載することです。 要件定義書に書かれていないことは、他の誰にも一切伝わらないし、実現しないと考えましょう。 決して行間の解釈が生まれるような余地を残してはいけません。 要件定義書の完成度により、システム開発の成否が決まると言っても過言ではありません。 妥協のないようにしっかりと作り込みましょう。

システム開発における要件定義の成果物(要件定義書)に記載が必要な3つの項目

amela.co.jp news image 3

システム開発における要件定義の成果物である要件定義書。 この要件定義書に記載するべき項目は、以下の3つです。

  1. システムに関する項目
  2. 機能要件に関する項目
  3. 非機能要件に関する項目

では、それぞれについて解説します。

1.システムに関する項目

システムに関する項目は、顧客にどのようなシステムを導入予定なのか説明するためのものです。 例えば、システムの概要や、導入の目的、導入後の業務フローを記載します。

2.機能要件に関する項目

機能要件に関する項目では、システムの実装によって何ができるようになるのかを記載します。 具体的には、システムの種類・構造や、処理可能である内容などです。 機能要件は、顧客へのヒアリングの段階で明確にする必要があります。

3.非機能要件に関する項目

非機能要件とは、顧客が機能以外で求める要件のことです。 例えば、システムの性能や効率性、セキュリティや保守・運用サービスなどです。 こちらもやはり顧客へのヒアリングの段階で明確にしなければなりません。

システム開発における要件定義に必要な4つのスキル

amela.co.jp news image 4

システム開発における要件定義には、さまざまなスキルが要求されます。 その中でも特に重要なのが、以下の4つです。

  1. 顧客のニーズを引き出すコミュニケーションスキル
  2. スケジュールとリスク管理のスキル
  3. 実現可能なシステムの設計を把握するスキル
  4. 要件をドキュメントに落とし込むスキル

では、それぞれについて解説します。

  1.  顧客のニーズを引き出すコミュニケーションスキル 

顧客のニーズを引き出すためには、高いコミュニケーションスキルが必要です。 相手の話をしっかり聞くだけでなく、自身の考えを言語化できない顧客の代わりに言語化できるようなスキルも要求されます。 要件定義の段階でしっかり顧客とコミュニケーションを取れていないと、システム完成後に「〇〇が実装されていない」「〇〇の機能がなくなっている」といったクレームを受けてしまう可能性があります。 よって、要件定義を担当するには、高いコミュニケーションスキルを持っていなければなりません。

  1.  スケジュールとリスク管理のスキル 

要件定義の段階で、システム開発のスケジュールを組み、それぞれの工程で予想されるリスクも把握しなければなりません。 そのため、要件定義を担当するにはものごとを俯瞰する力が必要です。 要件定義をしっかりおこなうことで、システム開発がスムーズに進み、トラブルが起きる可能性も軽減できます。

  1.  実現可能なシステムの設計を把握するスキル 

要件定義の段階では、何が実現できて、何が実現できないかを判断できなければなりません。 なぜなら、要件定義の段階で実現できると判断したことが、開発の段階になって実現できないと判明した場合、システム開発プロジェクトチームのスタッフが困るからです。 そのため、要件定義を担当するには、ある程度開発に関する知識を持っている必要があります。

  1.  要件を要件定義書に落とし込むスキル 

要件を要件定義書に正確に落とし込むスキルも、要件定義をおこなうには必要です。 というのも、要件定義書が正確に記載されていないと、意志疎通のミスなどのトラブルが起きるからです。 ですから、誰が読んでも内容を理解できるような要件定義書を作成できるスキルは身につけましょう。

要件定義をしっかりおこなってシステム開発を成功させよう!

amela.co.jp news image 5

以上、システム開発における要件定義の進め方、要件定義書の記載内容、要件定義に必要なスキルについてお話しました。 要件定義は難しいですが、システム開発を成功させるためにも、しっかりとやらなければなりません。 担当者の責任は重大ですが、その分システム開発が成功した時の達成感は大きいでしょう。 今回の記事が参考になれば幸いです。