プログラム設計書に日本語で擬似コードを書いてはいけない

悪いプログラム設計書は、一言で言えば「プログラミング言語を日本語で書いたもの」です。変数の代入からif文の遷移まですべて日本語で書いてあります。こんなものを書くぐらいならプログラムに落とした方が早いし、間違いも減ります。

まったく同感。

では、日本語で擬似コードを書く代わりにどうすればよいか。

はてな銀行では、平日9〜17時は1,000円の手数料が必要です。
平日のそれ以外は5,000円となります。
休日だと10円になります。
ただし、アルファブロガーの方は無料です。

というビジネスルールがあったとしたら、

次のような条件マトリクスをプログラム設計書に補足としてつけます。

入力条件 結果
ユーザ種別 平日・休日 時間帯 手数料
アルファブロガー --- --- 0円
通常ユーザ 平日 9〜17時 1000円
0〜9時, 17時〜23時 5000円
休日 9〜17時 10円
0〜9時, 17時〜23時 10円


これなら見てもらえばすぐに間違いがわかるし、
テスト用にも使えていいんじゃないかな?


日本語のビジネスルールのままだと、
「休日だと10円になります。」という部分が
「休日だと(時間に関係なく)10円になります。」なのか、
「休日だと(平日のそれ以外は)10円になります。」なのかがあいまいで、
この文を読んだ人間の解釈の違いにより、異なった仕様として解釈されます。
つまり、バグの温床なのです。(無理矢理っぽいけど。あくまで例なので)


あいまいさが回避できて、ぱっと見ただけでどのような結果になるのかが
わかる書き方なら、別に条件マトリクスでなくてもよいです。


そういった点で日本語で擬似コードを書いた設計書は最悪です。
曖昧さは含まれるし、
条件が増えてくるといったいどのような結果になるのかすら簡単にはわかりません。


プログラム設計書に日本語で擬似コードを書く事を要求する会社はカーゴカルトです。
なんちゃってコードを何千行書いたとしても、本物のソースコードは1行たりともできません。