初めて要件定義をやる人と考える「そもそも要件定義とは一体何なのか?」

【基本編】要件定義とは何か?

この記事はこんな人におススメ

「要件定義とは何かを知りたい」
「要件定義のコツやポイントは?」
「要件定義を体系的に学びたい」

こんにちは。わさお(@wasataka)です。

突然ですが、要件定義という言葉を知っていますでしょうか?もしくは、知っていてもその意味をきちんと説明できますでしょうか?

システム開発に携わっている人であれば、要件定義という言葉は聞いたことがあるかと思います。

しかし、その意味をきちんと精緻に考えたことがある人は少ないと思います。

この記事では、「要件定義」を明確に定義し、体系化することを目的としたいと思います。

1.要件定義とは一体何なのか?

要件定義とは一体何なのか?

その問いに答えるためには、まずは「要件」と「定義」の意味を知らなくてはいけません。辞書で調べると以下のような答えが出てきます。

 要件:必要な条件

 定義:概念の内容を明確に限定すること

これらを組み合わせると、

要件定義:必要な条件を明確にすること

という意味になります。

上記を覚えるだけで要件定義をなんとなくやっている人よりも一歩リード出来ています。おめでとうございます。

2.システム開発における要件定義の意味とは何か

では、次にシステム開発における要件定義の意味を考えたいと思います。

システム開発で言うならば、「システム化に必要な条件を明確にすること」になります。

システム開発における要件定義は、上流工程で行われるタスクであり、プロジェクトの成否を決める重要なフェーズです。

2018年の日経コンピュータのアンケートによるとプロジェクト失敗の原因の35%は要件定義にあるという調査結果も出ています。

なぜ、要件定義はそれほどまでに重要とされているのでしょうか。

「予定通り進まないプロジェクトの進め方」によると、要件定義の重要性について下記のように書かれています。

「要件定義」とは、プロジェクトにおける依頼者と受託者の間の結節点になる行為です。言い換えれば、ここが「何が欲しいか」と「どう作るか」の境界線です。この定義の精度が低いと、着手した後の手戻り、影響範囲が甚大なものになります。

予定通り進まないプロジェクトの進め方

新品価格
¥1,980から
(2020/4/15 18:40時点)

下記の図は一般的なウォーターフォールモデルのシステム開発の工程を図にしたものです。

システム開発の全工程
システム開発の全工程

この図でも分かるように、要件定義は「業務側」と「システム開発側」の橋渡しを行う工程です。認識齟齬が起きないよう要件定義の精度が非常に重要だということが分かるかと思います。

そして、要件定義のゴールは、この「システム化に必要な条件」をユーザー側と開発側で合意することにほかなりません。

これだけは覚えよう!
要件定義のゴールは、「システム化に必要な条件をユーザー側と開発側で合意する」こと

ちなみに、要件定義の基本を学ぶには、下記の書籍がおススメです。
この本は要件定義のノウハウが体系的にまとまっており、初心者から中級者まで役立つ内容となっております。

ベテランSEのノウハウが最短で身につく! 「業務知識ベース」でつくる要件定義入門

Amazon 楽天市場

3.要件定義の種類について

要件定義のゴールは前述した通り、「ユーザー側と開発側で”システム化に必要な条件”を合意すること」となります。

このゴールに到達するためには、いくつかのステップがあります。

具体的には以下3つのステップでゴールに向かっていきます。

要件定義の3つのステップ
  1. 業務要件定義
  2. システム要件定義(機能要件)
  3. システム要件定義(非機能要件)

3-1.業務要件定義

業務要件定義とは、ユーザー側で業務に必要な要件を合意することです。

業務要件定義でまずやるべきは、業務フローの作成です。
現状(AsIs)の業務フローを元に、あるべき姿(ToBe)を作成します。

そのあるべき姿(ToBe)を実現するために必要な要件を整理するのが業務要件定義となります。

なお、業務フローの作成方法については、下記の記事を参考にしてください。

【初心者必見!!】業務フロー図作成の4ステップ

3-2.システム要件定義(機能要件)

システム要件定義(機能要件)では、システムが実装する機能を整理します。

ユーザー側で作成した業務要件に対して、システム化出来るかどうかを開発側とすり合わせていきます。

3-3.システム要件定義(非機能要件)

非機能要件とは、機能要件以外の要件を指します。

機能要件以外の要件とは、システムに関する➀可用性、②性能・拡張性、③運用・保守性、④移行性、⑤セキュリティ、⑥システム環境の6つを指します。

なお、非機能要件について、詳しく知りたい方は下記の記事を参考にしていただければと思います。

非機能要件定義で押さえるべき6つの観点について非機能要件定義で押さえるべき6つの観点について(サンプルあり)

4.システム開発を学ぶためのおススメサービス

システム開発の基本を学ぶには、下記サービスがおススメです。

世界最大のオンライン学習サービス「Udemy」

Udemyはシリコンバレー発祥のオンデマンドサービスです。
IT分野を中心に格安でオンライン学習が可能です。

プログラミング教室に通うよりも手軽に学習できますので、是非一度見ていただくことをおススメします。

世界最大級のオンライン学習サイトUdemy
未経験からプロのWebデザイナーになる! 400レッスン以上の完全マスターコース

即戦力が身に付くプログラミング教室「TECH::EXPERT」

スクール形式で学びたいという方には、TECH::EXPERTがおススメです。

未経験から最短でエンジニア転職を目指す

TECH::EXPERTは、ITエンジニア未経験の方でも即戦力が身に付くプログラミング教室です。

キャリアチェンジ保証があり、転職のサポートまでしてくれるのは、教育力・技術力に自信がある証拠と言えるでしょう。

5.【結論】要件定義とは、「必要な条件を明確にすること」である。

今回は要件定義入門編として、「要件定義とは何か?」について解説致しました。

お伝えした通り、要件定義はプロジェクトにおける重要なフェーズですので、必要な知識は身に付けておくことをおすすめします。

↓↓このブログが少しでもお役に立ったならば、応援クリック頂けると嬉しいです!↓↓

ブログランキング・にほんブログ村へ