要件定義

要件定義の定義

記事の目的と対象者

本記事の目的は、システム開発における要件定義の意味を知ることです。

読者は主に、システム開発を依頼する側とシステム開発を受ける側の双方を想定しています。システム開発を依頼する側と受ける側には下記のような組み合わせがあります。

システム開発を依頼する側システム開発を受ける側
情報システム部の担当者開発企業のエンジニア
業務部門の担当者情報システム部の担当者

小規模な開発では依頼する側と受ける側が同一ということもあります。本記事では両者が分かれることを想定しています。

読者のみなさまの立場にあわせてお読みいただければ幸いです。

システム開発を依頼する側と受ける側
図 システム開発を依頼する側と受ける側

要件定義の定義

はじめに要件定義という言葉を定義してみましょう。簡単な言葉で定義すると「どんなシステムを作るかを決めること」になります。もう少し専門的な言葉で定義すると、

要件定義とは「開発システムに実装する特性の決定」です。

開発システムに実装する特性の決定

この定義を3つの部分に分解して詳細を解説します。

開発システム

ひとつめは「開発システム」です。要件定義はコンピュータシステム(以下、システム)を対象としていて、システムを開発するための作業のひとつに該当します。

システムを対象とする

要件定義はシステムを対象とします。

システムとは、コンピュータプログラムによって構成されるソフトウェアと、そのソフトウェアを稼働させるためのハードウェアによって成り立ちます。

また、システムの種類には、ゼロから開発するスクラッチシステムと、標準的な業務特性が組み込まれたパッケージシステムがあります。パッケージシステムには会計システムや生産管理システム、そして営業支援システムなどがあります。なお、クラウドかオンプレミスかはシステムの提供形態の分類になります。

いずれのシステムであっても、システムを開発もしくは導入する際に要件定義という作業を行います。

要件定義はシステムを対象とする
図 要件定義はシステムを対象とする

システムを開発する作業のひとつ

要件定義はシステムを開発するための作業のひとつです。

システム開発には企画や設計、開発、テスト、そして移行などの工程があります。要件定義はこれらの工程のうち「設計」に該当します。ちなみに、建築物や自動車を建築、製造する際にも設計という言葉がありますが、要件定義はあくまでシステムの設計に限定して分けて考えます。

要件定義の位置づけ
図 要件定義の位置づけ

実装する特性

二つ目は「実装する特性」です。

大辞林によると特性は、

  あるものに特別に備わっている性質。特有の性質。特質

  大辞林

とあります。

要件定義の「あるもの」はシステムを指しますので、システムに特別に備わっている性質と読み替えられます。

また特別とあるのは、システムによって成し遂げたい固有の目的といえるでしょう。すなわち特性とは、システムを活用して成し遂げたい目的のために備わっている性質です。

なお、特性という言葉を使ったことには理由があります。それは要件定義は機能を決めるもののみならず、という意味を込めています。

要件定義には機能以外にも、性能や稼働条件などの非機能的なことがらや、ユーザーが操作する画面のイメージ、そして開発に使う言語やライブラリを含みます。また、システムの対象ユーザーや仕事の流れ、管理するデータなどの情報も包含します。

そのため、要件定義では特性という、機能よりも一段階抽象化した言葉を使います。

特性の要素
図 特性の要素

決定

三つ目は「決定」です。

要件定義でもっとも重要な部分が決定です。

システム開発を依頼する側と受ける側の双方で、特性について決定します。決定は合意形成という言葉もよく当てはまります。ビジネス側と開発側は受発注の関係もあれば、同一社内で別部署の関係もあり、小さな規模の場合は同一という可能性もあります。

合意するための手法にはさまざまな工夫がなされます。この工夫によってシステムの目的を達成できるかが決まります。

たとえば下記のような点で工夫が求められます。

  • 要件定義の進め方
  • 要件定義で決めること
  • 要件定義に参加する人
  • 文書に記述する方法
  • ワークショップを開催する方法

これらは要件定義の方法論、手法などと呼ばれます。方法論については書籍、動画そしてブログなどでさまざまな人が発信をしています。本ブログも方法論について発信しているサイトのひとつです。

書籍や動画を基礎として、自社の経験も踏まえて方法論を実践、定着できるとよいでしょう。

サマリ

要件定義とは「開発システムに実装する特性の決定」です。システム開発を依頼する側と受ける側の双方が、特性について合意する行為が要件定義です。

開発システムに実装する特性の決定