何もしないことのコスト [日記]
あるシステムの仕様書で、こんなことが書いてあった。
A が 0 の場合、B を10倍する。
ここで真っ先に考えなければならないのは、『A が 0 以外』の時は、どうするのかと言うこと。
「書いてないのだから何もしない」
と考えるのは危険です。
経験上、十中八九、仕様漏れです。(A が 0 以外になることを忘れていた)
そこで、聞いてみたのです。
「A が 0 じゃなかったら、B はどうするのですか?」ってね。
そしたら
「A が 0 じゃない時は、B は使わないので、好きにしていいよ」
これで終わっていたら幸せでした。
「それじゃあ曖昧だから、一番楽な『A が 0 以外なら、B は変化なし』という仕様で」
ガッデム!
一番楽なのは、『A が 0 以外でも、B を 10倍』です。
ソースコードで書くと、はっきりします。
// Aが0ならBを10倍。Aが0以外なら、Bは変化なし if (A == 0) B *= 10
// Aが0ならBを10倍。Aが0以外でも、Bを10倍 B *= 10
ここで挙げている例では A が 0 かどうかの判定ですけど、実際のシステムでは、この判定部分がものすごく面倒だというのに…
2010-08-18 07:30
nice!(0)
コメント(0)
トラックバック(0)
コメント 0