Murayama blog.

プログラミングと、その次の話

要求と仕様について


要求仕様書について、いろいろ勉強してみるといろいろわかってきたので、
少しふざけたかんじでまとめてみます。
#そもそも、僕は要求と仕様についてちゃんと理解していなかったので。


「要求」と「仕様」について。


「要求(Requirement)」とは、言い換えると「欲しいもの」になります。
「要求」は依頼者の欲しいものを表していますが、それ自体は非常に曖昧なものです。
曖昧な「要求」は、どのようにすれば達成したことになるのかという明確な基準がありません。
そこで、「要求」から「仕様」を導き出すことによって、その曖昧性を排除します。


「仕様」とは「要求」の利害関係者が、その意味を取り違えることなく一意に識別できるものです。*1
つまり、「仕様」は曖昧なものであってはいけません。
「要求」から導き出した「仕様」をすべて満たしているかどうかによって、
その「要求」が達成できたかどうかを判断することができます。


そのため、「仕様」は開発者にとって達成すべき目標になります。
「仕様」は、最終的にはソースコードなどなんらかの形に変換することになります。



と、この話をシステムとはぜんぜん関係のないところで例えてみます。
こっからいいかげんです。



例えば、僕が「かっこよくなりたい」と思ったとします。



「かっこよくなりたい」というのは「要求」です。
「要求」なので曖昧です。
「かっこよくなりたい」っていうのは簡単ですが、いかんせん曖昧なもんで、
何をもって「かっこいい」と判断するか、っていうのが大事なわけです。


そこで「かっこよくなりたい」という「要求」から「仕様」を導き出します。
例えば、
・髪を切ってオシャレなヘアスタイルにする。
・ダイエットをして体重を60キロにする。
・オシャレな服を買いにいく。
みたいなものが「仕様」の候補に挙がります。


細かいことを言うと、「仕様」は曖昧であってはいけないので、


・髪を切ってオシャレなヘアスタイルにする。


のままでは、「オシャレな」の部分がイマイチ明確ではありません。
そこで、


・髪を切って3センチ程度のショートモヒカンにする。


の方が明確でよいと思います。



同じ理由で、
・オシャレな服を買いにいく。

・ビームスのTシャツを買いにいく。
とした方が明確になります。#厳密には、まだ若干グレーですけど。。


「仕様」が明確かどうかの基準は、「要求」の利害関係者(この場合、自分。と周りの友人くらいとします。。)が、
同じ理由で納得できるかどうかです。


結果として、
・髪を切って3センチ程度のショートモヒカンにする。
・ダイエットをして体重を60キロにする。
・ビームスのTシャツを買いにいく。


が「かっこよくなりたい」という「要求」から導き出した「仕様」ということになります。


次に、これらの「仕様」を達成するため行動を起こします。


美容院に行き、ベッカムみたいなショートモヒカンで、と時代錯誤なお願いをして、
ビームスにいってTシャツを買います。ディスプレイされてるのを買っておけば、まーたぶん大丈夫でしょう。
最後にダイエットです。これは大変ですが、一番てっとり早く痩せる方法は食べないことです。
昼ごはんをバランスアップとかソイジョイにするだけでけっこう痩せます。ソースは俺。


以上で僕は、
・髪を切って3センチ程度のショートモヒカンにする。
・ダイエットをして体重を60キロにする。
・ビームスのTシャツを買いにいく。


という「仕様」をみたし、かっこよくなったのでした。


おしまい。



一応言っとくと、この話はフィクションです。

*1:「仕様」は検証可能です。