トップ> コラム> 正しい " 要件定義 " のやり方 (その2)

正しい " 要件定義 " のやり方 (その2)

2008年08月19日

サービス創生事業部
マネージャー
今井 輝彦
imai.JPG

前回の、『正しい"要件定義"のやり方』では私が思う "要件定義" のイメージについて話させて頂きました。

"要件定義" が正しく行われないと、まったく使われない機能や勘違いされた実装がたくさんあるシステムができてしまう。

では"要件定義"はどうしていくのがいいのでしょうか?

今回は、"要件定義"のインプットである "お客さんの要求" を得ることの重要性について、たとえを交えてお話したいと思います。


そもそも"お客さんの要求"とは、何から得られるのでしょうか。


お客さんから頂ける資料から "お客さんの要求" の全てが得られるならば何の苦労も要らないのでしょうが、おそらくそれは難しいでしょう。


▽ヒアリング

"お客さんの要求"を取得するには、やはりヒアリングが有効だと思います。

システム開発に限らず、要求を正しく理解するにはヒアリングは欠かせません。

例えば「カレーを作ってください。」という注文書を受けたらどうしますか?

「カレーが欲しいんだな。こないだ食べた本格インドのカレーライスがおいしかったから、それにしよう!」なんて事を考えたりしませんか?

curry.GIF

それは「カレーを作ってください。」に対して、「カレーを作れば要件が満たされる。」と考えてしまい、『本格インドカレー』を作るということでお客様を満足させることができると勝手に思っているだけです。これでは真に要求を満たすものは作れません。


▽QCD

まずは「カレーを作ってください」の要求に対して、ヒアリングを行うことになりますが、その際、QCDを意識することが大事です。
QCD:生産管理の3要素といわれているもので、Q(Quality)品質、C(Cost)コスト、D(Delivery)納期の頭文字をとったものです。


Q(クオリティ):「質なのか量なのか、それ以外なのか」

おいしいカレーを食べたいのか、空腹でとにかくお腹いっぱい食べたいのか、珍しいカレーなのか、と聞いていくことでカレーの方向性を探ることができます。ひょっとしたらお客さんでない他の人が食べるのかもしれません。

curry2.GIF

C(コスト):「カレーにどれくらいの予算をかけられるのか」

カレーだけでなく、サラダやデザートまで求めている場合もあります。
カレー自体にどれほどの予算を割けるのかを確認する必要があります。
これにより、希少なスパイスを手配して使用するか、ルーを買って済ませるかなどの手段を検討することができます。

curry3.GIF


D(デリバリ):「いつ食べたいのか?来週?今晩?今?」

レトルトカレーにしてスグに準備するのか、じっくりと時間をかけて煮込んだカレーにするか、秘伝のスパイスを求めてインドにまで行っちゃうかの検討ができます。

curry4.GIF

QCDを意識してヒアリングすることで、お客さんの要求をだいぶイメージしやすくなります。
こうすることで勘違いしたカレー(機能)を作ってしまう可能性を減らすことができます。
ですが、お客さんの要望の多くは
「今までに味わったことが無いほどの究極のおいしいカレーを早く、安く、たくさん食べたい」というワガママなものでしょう。

それをそのまま要件として受け止めても、実際にはスグに食べられなかったり、たくさん作っても残ったりするかも知れません。使われないカレー(機能)を作ってしまう可能性が出てきます。
最悪、全てを受け入れたために「カレーが完成しない。」ということもありえます。


▽トリアージ、スコープ

このような事態を避けるために、優先度をつけて要件の "トリアージ" を考える必要があります。

トリアージ:災害などによって負傷者が多数発生した場合に、限りある資源でより多くの患者を救うために、治療する患者に優先順位を決めることです。

「どれが一番重要ですか?」とそのまま質問しても、それはお客さんに対して妥協を求めているだけにすぎません。

「たくさん食べたい、おいしいのが食べたい。」とお願いしたのに、「どっちが重要ですか?」と聞き返されたら、皆さんもなんか嫌ですよね。

このような場合は、要望の周辺について質問をするのがよいです。
「最近カレーを食べられたのはいつですか?」、「冷蔵庫には何がありますか?」や「お食事をするところはどこですか?」などスグに答えられる要望周辺の事実に目を向けます。
要望の周辺には、その要望に対する要求があり、『ちょうどいい』を見つけやすくすることができます。

トリアージとは、QCDのバランスを考えて、提供するモノを『ちょうどいい!』とすることです。

これによりお客さんが求めるカレーを『正しく適切』に作ることが可能となっていきます。


▽まとめ

QCD、トリアージ、について話してきましたが、全体を俯瞰してみることも大切です。ここで改めて見直してみると、お客さんは"カレーライス" とは言っていないこと、"食べる" ためとも言っていないことにも気づくかと思います。
「お客さんの要求」を理解しようとする時は、『そもそもなぜ?』にたち返って考えてみましょう。
今回の場合では、「そもそもカレーを作りたいのはなぜか?」になります。
場合によっては「辛ければ、カレーでなくても良い」、「メニューに載せる写真が撮りたい」、「カレーの作り方の過程が知りたい」という可能性もあります。

『お客さんの真の要求』を見つけていくための、要件定義のヒアリングは、こうして行っていくと良いと私は考えています。


▽最後に

今回、『カレー作り』を比喩で使いましたが、比喩は要件定義をする時に非常に有効です。
難しい説明や言葉を並べるよりも、日常的な事に例えて話し合った方が、要件の本質的なところを理解しあうことができると思います。

 私は『車』や『家』を比喩で使うことが多いですが、皆さんはどうでしょうか?

次回は、「お客さんの要求は分かってきた。ではどう整理しよう?」について話したいと思います。