要求*

最近、要求?という言葉が一人歩きしている気がしているので冷静に関係を考えてみました。

  • 要求開発
  • 要求分析
  • 要求定義
  • 要求仕様

という言う言葉があります。これらがどういう意味なのかを考えてみました。間違えていたらつっこんでください。

  • 要求開発は要求自体を開発することです。一般にクライアント(うちの会社では企画)の要求は曖昧であったり本質的なものでなかったりするので、それをうまく引き出すことが必要です。
  • 要求分析は要求を分析し、システム(ソフトウェア)が何を実現するものなのかを明確にするものです。
  • 要求定義は要求から出来ること出来ないことを明確にし、要求仕様に落とすことです。
  • 要求仕様は要求を仕様化したものであり、要求定義のアウトプットと考えれば良いと思います。

ソフトウェア開発において上流工程が重要であることは周知の事実ですが、最近は(結構前からかな)設計よりも要求ほげほげなる言葉が注目されていると思います。我思うに、日本のソフトウェア開発は工業化じみているような気がします。これは緻密な仕事が得意な日本人の良いところかもしれませんが、ソフトウェアにおいては必ずしもこれが良い方向に向かうわけではないと思ったりしています。

僕は前々からソフトウェアとは高度な創造物であり、芸術的センスが求められるものだと思っています。とても抽象的な言い方になってしまいますが、目的は良いものを作る。ただそれだけだと思っています。

しかし、これを見失うと言われたものをただ作る、言われたことをコードに落とす、言われた通りのテストを行ってバグを登録する、言われた通りバグを直す。仕事が作業化してしまい結局出来たものが想像していたもとのと違うと言われ、作り直し・・・ということになってしまいます。そうならないように言われたままに作る前に要求(インプット)をなんとかしましょうということで要求ほげほげという技が出てくるのだと思います。

要求ほげほげは必要です。でも本当に重要なのは良い物を作るということです。全ての行為はその手段でしかありません。でもこの日本のソフトウェア産業を見ていると時に作業が目的化していくように見てしまいとても心配になるのです。