曖昧な表現という問題

もしも技術者が常に「明確で論理的な仕様書」を作成できるなら、システム開発など児戯に等しい。然し残念ながら我々にはその能力がない。我々の作る仕様書にはどこかに曖昧な表現がある。この曖昧な表現は人を混乱させ彼等に間違った解釈をさせる。混乱は進捗の停滞、間違った解釈は手戻りを発生させる。
例えば
「ユーザに紐付いた承認権限」
と言われてピンとくる人がどれ程いるだろうか。これは実際の現場で作られた仕様書の一文である。
意味はこうだ。
ログインユーザのユーザIDを条件に承認テーブルを検索し承認権限を取得する。」
となる。具体的には
「セッションから「userid」をキーに取得したユーザIDをselect approvalflag from auth where userid = ?のパラメータに指定し実行する」
のような実装となる。
最初の文からこの答えに辿り着いた方は経験豊富な技術者に違いない。イメージと違ったとか見当違いだったという方が殆どだろう。当たり前である。それだけこの文章は曖昧なのだ。「紐付いた」などという曖昧な表現は極力仕様書で使うべきではない。
今回の格言。
「答えに辿り着けない者がダメなのではない。答えに辿り着けない者が出てくるような曖昧な文章を書いた者がダメなのだ」