« DDD:ドメインをメタ方向へずらす | トップページ | 「個性的な機能」の病理 »

2011.06.26

「要件定義」に何週間もかける?

 上流工程にはいくつかの作業が含まれるが、それらの呼び名は案外いいかげんだ。「基本設計」が「概要設計」と呼ばれることがあるし、「基本設計・詳細設計」の組み合わせが「外部設計・内部設計」と呼ばれることもある。

 そこらへんの違いは、かつて日本のシステム開発会社がメーカー系列毎にブロックを成していて、それぞれが異なる用語体系を用いていたゆえなのだが、案外それで問題は生じない。呼称が違っていても概念のマッピングが容易だからだ。

 ややこしいのは、同じ呼称が異なる意味で使われるケースだ。

 昔、その日初めて会った技術者が「要件定義」のスケジュールについて話していた。彼によると「要件定義」に3ヶ月かけるという。奇妙に思って成果物を尋ねてみると、データモデルが含まれているという。つまり彼は「(私の言う)基本設計」や「上流工程全体」について話していたわけで、それはそれでわかる。そのように「要件定義」を用いる例はわりとある。用法上の間違いというものでもないし、相互の認識の違いも修正しやすい。

 こんな例もある。要件定義に何週間もかけるというから、それが「(私の言う)基本設計」あたりの話だと思っていたら「(私の言う)要件定義」ドンピシャだったりする。

 「要件定義」の成果物は「要件定義書」である。そこには、システム化にあたって各部署のユーザから収集された要望がまとめられている。たとえば「在庫状況をリアルタイムで見れるようなシステムであること」といった内容が載っている。話を聞くと、「(彼らの言う)要件定義」の成果物もそういうものなので、お互いの用語の使い方は一致しているはずだ。

 しかし、要件定義書をまとめるのに何週間もかけるというのは、ちょっと理解できない。日常業務に忙殺されている情シス部門がまとめて、結果的にそれだけかかったという話ならわかる。しかし、システム開発を生業とする業者が、設計作業にとりかかる前に何週間もかけて要件定義作業を実施するというのは、どうも納得できない。

 なぜなら、その成果物である「要件定義書」は「10代の頃に書いたポエム」のように、後で読み返せば恥ずかしいばかりのシロモノだからだ。基本設計が完成した後で見直せば、漏れは多いし、余計だったり、互いに矛盾していたりもする。

 要件定義書が不要だと言うつもりはないが、多大なコストをかけて作るほどに意味のあるものではない。それはまるで、目撃者がチラッと見ただけの犯人の顔つきを、CGか何かで緻密に再現しようとするようなものだ。実際には、例の片手間で描かれた感じの似顔絵のままで、立派に役目を果たす(あれはすばらしい仕事だといつも思う)。それをわざわざコストをかけて緻密に仕上げても税金の無駄遣いでしかない。

 じっさい私は、要件定義作業に半日以上かけることはない。項目を細かくすればするほど役に立たなくなることが身にしみているので、多くて10項目以内に集約してしまう。だから要件定義書には、警官による手書きの似顔絵のようなチープ感がただよっている。

 ところがある種の開発スタイルにおいて、要件定義はよりゴージャス化されるべき工程とみなされている。時間もたっぷりとるし、専用の分析技法も工夫されていたりする。なぜかと邪推するに、後続するモデリング工程に不安があるからではないか。じっさいのところモデリングは困難な仕事で、的確な枠組みだけでなく、担当者の高いスキルや適性が求められる。そこらへんの手薄さを感じれば、先行する要件定義作業を緻密に実施したくなるのが人情かもしれない。

 しかし残念ながら、それでモデリングが楽になることはない。新築される住宅に対する施主の要望を緻密にまとめても、そこから住宅の設計図が自動的に導かれることがないのと同じ話である。設計方法論の枠組みにおいて決定的に機能するのは、訓練や経験を通じて得られる生き生きとした洞察力や直観力であり、それを助けようと要件定義を精緻化しても「ポエム」が無駄に増えるだけだ。

 犯人をチラッと見た目撃者の証言にもとづいて「犯人要件定義書」がまとめられた。装丁も見事なその膨大な資料には、犯人の容貌が100以上の項目にわたって細かく分析されていた。捜査は難航し3年後に犯人は特定されたが、その容貌はこまかい部分で「犯人要件定義書」とは食い違っていた。かつて資料作成にかかわった目撃者は次のように語った。「嘘をつくつもりはなかった。あのときは8本と答えたけど、ほんとうは『皺の数』なんて思い出せなかったんだ」

|

« DDD:ドメインをメタ方向へずらす | トップページ | 「個性的な機能」の病理 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 「要件定義」に何週間もかける?:

« DDD:ドメインをメタ方向へずらす | トップページ | 「個性的な機能」の病理 »