仕様書といっても数多く存在しますが、誰のために作成していますか?
読み手は大概の場合は決まっていますよね。
エンドユーザであったり、開発者であったり。
読み手のことを意識して記述することは当然ですが、
必ずしも読み手のために書くわけではありません。
むしろ書き手である自分を守るために記述する必要があります。
実際の開発において、
仕様書を後付けで書く場合があります。
仕様書を後回しにしてでも開発を先行して行い、
リリースまでのスケジュールを短縮したいという
ユーザ都合であることがほとんどです。
極論すれば、ユーザにとっては、システムが正常に動いてさえいればよいのであって、
仕様書に何が書かれていようと関心がありません。
このような開発を行うと、
開発途中で要件の解釈の違いなどから「言った言わない」の問題が発生しやすくなり、
結果的に、大幅な機能変更やリスケジュールが余儀なくされる場合も少なくありません。
このような場合で、
仕様書を先に作成してあると、少しだけ状況が変わります。
通常、仕様書は納品物として扱われます。
そのため、その内容が正しいものであることを検収されることになります。
(開発に入る前に仕様書の検収をしてもらうことが重要ですし、
解釈の違いが発生するような仕様書は問題外です。)
検収されたものは、常に「正」であるものとされるため、
「言った言わない」の問題を極力回避することができ、
作業を円滑に進めることが可能になります。
仕様変更時の再見積もりなどもスムーズに行うことができます。
すべてのケースで、円滑にまわるとは限りませんが、
最低限自分の身を守るためにも、仕様書を先に書くことをお勧めします。