夢...現実...失望感...怒り...喜び...悲劇...

水曜日, 1月 25, 2006

あなたの要件は何?

我々は何かを望んで、他人に依頼することがある。望んでいるものを正確に提供者側に説明しなければいけない。この説明を問題記述或いは要求仕様(下記に要 件と呼ぶ)の集合という。あなたが望んでいることをあなた自身が知らなければ、あるいは知っていてもそれを伝えられなければ、望んでいるものを手に入れる チャンスは減ってしまう。だから、要件は重要なのである。

要求仕様に関する米国の専門家が面白い実験を行ったことがある。五つのプログラマチームに、ただ一つの文を違うだけで、後はまったく同じコンピュータ・プログラム要件を与えた。それぞれの違った要件は下記のようである。
  使用するメモリを最小にする
  アウトプットの読みやすさを最大にする
  プログラムの読みやすさを最大にする
  プログラムの文を最小にする
  プログラミング時間を最小にする

実 験結論として、"あなたが望んでいることが伝えれば、ほぼ確実にそれを手に入れる"である。実験によれば、プログラミング・チームの成果は要件に対して敏 感であることが判明した。各チームはまさに作るべく要求されたものを作ったのである。しかし、要求されなかったものは作らない傾向があることも分かった。 ソフトウェアの発注者が、プログラマは自分たちの望んだ通りのことをできないといった苦情が良く耳にすることがあるが、この実験で否定される。

そ れでは、発注者が望んだ通りのものができなかったことは何故か。実は多くの場合、発注者の自分の望んでいることをプログラマに明快に伝えなかっただけなの だということを確信されるようになった。従って、要件(要求仕様)というものソフトウェア開発にとって、一番重要なものである。

上記だけ を記述すると、プログラマは"そうだ、そうだ。原因は我々にあるものではない"と微笑みが浮かんで来る。そのようなことを考えているプログラマは言ってお く。"いや、原因はあなた方にも存在する"。これからのプログラマはただ言われて、"じゃ、やります"というスタンスだけじゃ、やっていけない。提案でき るプログラマ、つまりシステム・エンジニアーそのものが求められてくる。それはできます。それはできません。こういうふうにした方が良いと思います。等々 のような意見を言えるプログラマだけが生き残っていけるだろう。