要件定義と聞いて、あなたは何と答えられるでしょうか?
「プログラム自体のおおまかな仕様を書いたもの?」
と言った感じに回答してしまったかもしれませんね。
さて、ここではプログラミング学習の中で、聞くことが多いけれどもイマイチ意味が解らない…そんな言葉、要件定義についてより深く解説していきたいと思います。
より詳しい「要件定義」の意味
クライアントの要望が何か述べられ、そして、その要望を満たすためにはどうすればよいかを記述したもの。
より専門用語に落とし込むと、
- To-Beモデル(「あるべき姿」「理想像」のこと)を構築したもの
- AsIs(現状のこと)から、To-Beモデルへの橋渡しになっている内容
大まかにこの2つの要件を満たすものが、要件定義です。
要件定義は誰にもわかりやすい文章で書かれる
また要件定義を見るのは、プログラマーに限りません。
つまり、納品先の人に理解してもらう必要性があるうえ、その納品先はプログラミングとかかわりあいが深いとは限らないからです。
なので、簡易で解りやすい文言で書かれることとなります。
要件定義を見る人は、
- クライアント(取引先の社長や、発注担当者など、プログラミングとは遠くなりがちな方々)
- ユーザー(実際に使う人)
- 開発者
と、利害関係者に対して幅広く関係してくることも念頭に入れると良いでしょう。
要件定義は複数の段階を経て、最後に要件定義書になる
用件定義を行わないと、何を作ればよいかわからないし、何を作るのか解らないから取引先と合意が取れない。
なので、最終的に目に見える形で「要件定義書」に落とし込む作業を行う。
その為には例えば以下のような道筋をたどって制作される。
- 何を求められているのか知る為に、ヒアリングを行う
- ヒアリングを元に、制作物の理想的なモデル(To-Be)を作成する
- 理想のモデル(To-Be)と、現状(AsIs)を参考にして、理想のモデルを、現実可能な形(Can-Be) に変えていく。
- 現状(AsIs)から、現実可能な理想モデル(Can-Be)への道筋を示す
と言った具合だ。
短く纏めるのなら、理想と現実を観察して、実現可能な範囲で理想なモデルを提示することが、要件定義で行われると言えよう。
参考文献:だまし絵を描かないための要件定義のセオリー 著者:赤俊哉