システム要件について一言いっておく

2次請けでシステム開発なんかしていると、システム要件とか全く見ないまま仕様書を作ったりすることがあるけど、適切な仕様を書くにはこういった状況は良くない。

すごくおおざっぱな例えになってしまうが、要件というのは、「旅行で北海道に行きたい」というレベルの抽象的なものだ。

それに対して、いろいろな制約条件が付くと仕様が出てくる。たとえば、早く行きたいという条件が付いたら、飛行機で行くという方法になるだろうし、値段を安くしたいといった条件が付くならば、車で行くという方法になるかもしれない。酒を飲みながら、かつ安く移動したいというならば、列車になるかもしれない。(実際の料金は考慮してません。)

要件ってのは仕様の基礎になるべきモノなので、要件とそれに関する制約が整理されていないと変更されやすい仕様を作ってしまうことが多い。イデア論じゃないけど、要件というモノにある方向(制約条件)から光を当てて出来た影が仕様となるのではないだろうか。

要件が分かっていれば、提示された仕様よりもより適切な仕様を提案することができるが、仕様だけが提示されていては、それに従うしか対処のしようがない。
ろくな仕様が出てこないとか言う前に要件を整理してみよう。