レベルエンター山本大のブログ

面白いプログラミング教育を若い人たちに

BLOCKVROCKリファレンス目次はこちら

【要求仕様】成功する要求仕様失敗する要求仕様

http://www.amazon.co.jp/dp/4822282910

アラン・M・デービス (著), 萩本 順三 (監修), 安井 昌男 (監修), 高嶋 優子 (翻訳)

デマルコ絶賛!

要件定義の本はたくさんあるが、そういった本を読んだ上で
要件定義の工程を幾度か経験すると、
様々な本の言葉に惑わされていると感じることがある。

この本は、そんなとまどいに答えてくれる実践的な要件定義のための本だ。


一般的な要件定義
「要求とは実現方法を定義することではなく、システムが何をすべきかを
定義するものである。」。

しかし、この「どうやって(How)ではなく、何を(What)」という
おなじみの定義には、落とし穴がある。

たとえば、私たちがアナリストのグループで、
あるホテルのマネージャーが協力を求めてきたとしよう。
そこで、何を求めているのかと尋ねると、
マネージャーは「電話システムが欲しい」と答える。
うまく要件定義が出来たことを褒めてあげていいだろう。
マネージャーはハッキリと「どうやって」それが機能するか
(『このボタンを押して、外線を発信する』)ではなく、
「何」が欲しいか(電話システム)を定義したからだ。

しかし、「なぜ」そのような電話システムが欲しいかと聞いたら、こう答えるだろう。
「うーん、実際に欲しいのは、すべての宿泊客のための通信手段なんだ。
電話システムそのものが欲しいというわけじゃない。」
そうなると、「何」が通信手段であり、「どうやって」が電話システムであるといえる。
さらに、「どうして通信手段がほしいのか」と尋ねると、こう答えるだろう。
「宿泊客を満足させたいからだ」。
これで「何」が「宿泊客を満足させること」であり、
「どうやって」が「通信手段」であるといえる。
さらに、「どうして宿泊客を満足させたいか」と質問すれば、
「宿泊客にまた利用してもらいたいから」と答えるだろう。
これで「何」が「宿泊客をリピーターにすること」であり、
「どうやって」が「顧客を満足させること」になる。
この質疑応答を繰り返していけば、
最終的にはアブラハム・マズローの要求階層へと行き着く。

すでにおわかりのとおり、あたらに「なぜ」と聞くたびに、
その前の「なぜ」に対する答えが「何」になり、
要求に思えていた物がじつは要求ではなくて「どうやって」に思えてくる。

上記の落とし穴に対して、この本では、要求を挙げるときに以下の2点を満たしていることで要求と認めることを提唱している。

  • 1)その要求が実現されていることを、システムの外側からみてわかること
  • 2)その要求が、システムを使うことになる顧客やステークホルダー(利害関係者)の何らかのニーズを満たすのに役立つこと。

この定義のほうが、より実践的で必要十分であると思う。

まさに、この本の原題は「Just Enough Requirements」であり、「ぴったりな要求」と訳せるのだ。

要件定義レベルをやるなら必読!