要件定義って?基礎知識と制作の流れについて
プログラマー、システムエンジニア、コーダーなど、IT・Web職の求人を見ていると、「要件定義書を作成していただきます」とか「要件定義書を作成できる方優遇」とか、『要件定義』という文言を見聞きしたことはありませんか?
事前準備をすること?Webサイトとか制作するための定義を作るのかな?など、なんとなくイメージしている方もいるかもしれません。
最初からSEの仕事は難しそうだけど、その手前の要件定義ならやっていけそう!と思って求人を眺めても、そもそも要件定義って何?という方も少なくないでしょう。
そこで今回は、要件定義について基礎知識と制作の流れについて解説いたします。
要件定義とは
IT・Web業界ではよく聞く要件定義ですが、ここではシステム開発をベースにお話を進めていきます。基本的にはWebも同じなのでそれぞれの職種に当てはめて考えてみてくださいね。
まず、システム開発を行う上で「何をどうシステム化するのか」を決めるのが要件定義です。システム開発は、ユーザーの求める要求を要件へ落とし込むところから始まります。
似た言葉として「要求」と「要件」がありますが、明確に違う部分があります。それは要求定義が「アナログ」なものと定義するならば、それをITシステムという「デジタル」に変換するのが要件定義です。
それぞれは要求定義書、要件定義書としてドキュメント形式で残されるのが一般的です。
要件定義は、お客様の要求定義をいかにシステム化していくかを定義する、いわばシステム開発の土台となるものです。
そのため、要求にある細かな動作やそれに伴ってユーザーが行いそうなエラー動作までを想定して、ひとつひとつをプログラムの動作でイメージしなければなりません。
要件定義は、システム開発の上流工程に位置します。様々な種類のプログラミング言語を知ることや、豊富なプログラミング経験が活かされる業務です。
上流工程と下流工程について
▼上流工程って?
システム開発では、要件定義から詳細設計までを上流工程と言います。これは、システム開発に用いられるウォーターフォールモデルという手法から取られたもので、システムの作り始めを上流、システム構築完了までを下流と言い、滝をイメージした用語です。
システム開発では、要求をどのようにプログラミングすべきか、あるいは実現するためにはどのような手段があるのかを明確にイメージするスキルが必要です。
ユーザーが欲しい機能を提供するために最適な言語や、オペレーションの流れを想定し、「要件定義書」から「システム設計書」を完成させなければなりません。
▼下流工程って?
下流工程では、仕様書を基にプログラミングによるシステム実装を行います。また、機能ごとに行う単体テストから、全体を通した総合テストなども下流工程に含まれます。
上流工程をこなすエンジニアは、下流工程での豊富な経験が基盤です。下流工程での経験が多いほど、様々なパターンや手法を明確にイメージできるようになるのです。
要件定義の具体的な流れ
①ユーザー要求のヒアリング
企業では、よりユーザーに近い部署が営業を行い、ユーザーからの要求をヒアリングしてくるところからシステム案件が始まります。もちろん、システムエンジニアが営業を兼任する企業も多いのですが、そこでユーザーの要求をシステム要件へ変換していくのが要件定義の始まりとなります。
ユーザーが目指すのは、これまで手作業だった業務のシステム化や、既存システムの変更などです。これらの要求を正確に把握し、細かく的確にイメージすることで、具体的なシステムの全体像を把握します。
②要求の細分化
システムの全体像が把握できたら、実際のプログラミングにおける機能のひとつひとつを、細分化して要件としてまとめていきます。
ユーザーの業務フローの詳細を把握し、全てがひとつのシステムとして動くように、実装すべき機能を洗い出していきます。ユーザーの要求や業務フローにおいて、取りこぼしが無いように配慮しなければなりません。
また、要求内容の全てをシステム化できるとは限りませんので、要件定義の時点で切り分けをしておく必要もあります。
機能範囲が明確でなければ、ここから始まるシステム開発の途中で仕様バグとして、大きな手戻りを発生させてしまうことになります。
最悪の場合、プロジェクトの失敗を招く元凶となってしまいますので、細かいところまでユーザーとのすり合わせが必要です。
③要件定義書の作成
要件の機能を細分化できたら、いよいよ要件定義書の作成です。要件定義書で書き出すドキュメントの内容は、要件定義後の工程である「システム設計」に落とし込む前段階です。
要件定義書で定められたシステムの全体像から、細分化された機能までをしっかりと記載しておかなければ、システム設計の工程で頓挫します。
要件定義書はシステム開発における全ての基盤となりますし、システム運用開始後の保守にまで影響を及ぼすため、システム的な矛盾が出ることはもちろん許されませんし、ユーザーとの意識合わせが必須となります。
さいごに
いかがでしたか?
今回は、要件定義について基礎知識と制作の流れについてご紹介しました。
要件定義での重要な用語や進め方のコツ、必要なスキルなどについては、また別途コラムで解説しますので、そちらもぜひ参考にしてみてくださいね。