http://q.hatena.ne.jp/1159966216

↑こんな記事があった。
この気持ちよくわかります。どっちもね。

私は、プログラマをしていて転職し、そして今開発元側さんに注文を付ける仕事をたまーにしてる。
これが本務ではないけど。この開発者側が、とんでもない企業なので大変なのだが。
こんな事例があった。○は、開発元。

条件:
一応常駐(エンジニアとは呼べない)エンジニアが8人くらいいる。
というか、勝手にバージョンアップされたりする。
○○はその開発元の企業名

こちら。「○○○○さん。バージョンが一つあがったら、ユーザー入り口 管理者入り口の二つの入り口のうち、
管理者入り口にログインできなくなったんですけど。」
あちら「あ、管理者入り口は、ユーザー入り口の中に組み込まれて、管理者入り口はサーバー側の管理者という意味に、今回なりました。
こちら「・・・(だったらバージョンあげる前にいえよ。)」

こちら「○○○○さん。あなたのシステムを使っていて、同時に複数人がアクセスすると落ちるんですけど。Appletが起動しません」
あちら「それは内の問題ではなく、サーバー管理会社の問題です。」
こちら「いや、再現性があるのですが。しかも落ちるのはサーバではなくて、あなたのシステムなんですが。責任回避してもらっては困ります」
あちら「うちの開発エンジニアと検討します。」
そして返事はこない。

こちら「○○○○さん。20MB以上のデータがアップロードできません。でも説明書に20MB以上アップロードできなんて書いていないのですが。」
あちら「あ、そうなんですか?どうしたらそうなるんですか?」
こちら「20MBのデータと、20MB1Bのデータを用意して、実際に見せる」
あちら「仕様です。」
こちら「いや、だから説明書に書いていませんし、仕様書も確認しましたが、書いていません。あなたのシステムのPPPPPPPPなところろで、PPPPPPな設定をしているので、こうなるんですよね。だからPPPPPなところを、PPPPPPして欲しいのですが。」
あちら「私では分かりかねますので、担当者と検討します」
数日後システムにアクセスしたら
あちら「20MB以上のデータはアップロードできません」の文言

こちら「・・・もしかして(インテグレーション)テストやってなかったの?一回、あなたがたのやったテスト項目表を見せてほしいのですが・・。」

閑話休題

で、話を元に戻すと、プログラムがわかっていない人が、仕様書を書かないといけないらしいが、
それははっきりいって無理だ。天才でない限り。

例えば、仕様を書く人間は、こういう事例に対してこういうことを考えて、どうするのかを、書かないと。
プログラマにとっては、ほとんど思考せず、当たり前すぎるくらいのことであるが。

割り算するプログラムの場合
多分、プログラム経験なしの人の仕様を日本語だけで書く場合

Aに入力した値を、Bに入力した値で除算した結果をCに出力する。

プログラム経験ありの場合

Aは数値が入り、数値以外は入力できない。Aに数値以外が入力された場合
数値以外が入っていることを知らせ、処理を中断する。BはAと同様である。
数値の型は、単精度浮動小数点型であるとする。
ただし、Bの場合、数値が0であった場合0で除算しようとしていることを警告し、処理を中断する。

ただし文言とかの内容は省略

で、経験なしの仕様を見たプログラマは困るのである。「後は勝手にこちらで判断しちゃっていいの?」と。
もちろん勝手な判断は独走で、後でえらいことになるので、そんなことする人間は論外である。
で、何回も聞く羽目になるのである。必ず顧客の仕様には従うのが通例なのである。

だからこんなことがあった。
コピー機。

紙をコピーするときに、カラーモードか、白黒モードか、どちらでコピーするのか選択できた。
ところが、管理者権限で白黒印刷のみの設定ができた。
仕様はそこまで。

で、「じゃあ、管理者権限で、白黒印刷しか認めない設定をしていたときに、カラーモードで印刷した際はどういう処理をしたらいいんだ?」と思った。

で、上司に相談。上司は顧客とのミーティングで議題に揚げてくれた。
後日上司から、とんでもないことを言われる。
「客先できいてみたらさ、その時は、白黒で出してくれっていわれちゃったよ。」

なんというか、自分の後方の背景から「ガーン!」という言葉が登場しそうになった。
「いや、それってカラーで印刷しようと思って50円入れた人、40円帰ってきて白黒が出てくるんですよ。自分はカラーにしたのに。」
「普通、そういうときは、その旨知らせて確認したりすると思っていたのですが。」
と言ってみたら

「僕もそういったんだけど、客先が仕様だといったんだから。そうするしかないよ。今日も徹夜だね。」
となったのである。

で、ひぃひぃ言って、そういう実装をして一週間くらいたったとき、

「客先がこの前の件、やっぱり確認するようにしてだってさ。」
という一報が入ってきたのである。
なんちゅうか、脱力感たっぷりという感じ。

仕様を決めるなら、綿密な打ち合わせを。

というわけである。