プログラマーという人たちを皮肉ったジョークとして、「プログラマーの夫に買い物を頼んだら」という有名なお話があります。
A wife asks her husband, a programmer, “Could you please go shopping for me and buy one carton of milk, and if they have eggs, get 6?”
日本語訳:妻がプログラマの夫に言いました。「買い物にいって牛乳を1つ買ってきてちょうだい。そして、もし卵があったら6つお願い。」
A short time later the husband comes back with 6 cartons of milk and his wife asks, “Why did you buy 6 cartons of milk?”
日本語訳:少しした後、夫は牛乳を6つ買って帰って来たので、妻は「なんで牛乳を6つも買ってきたの?」と尋ねました。
He replies, “They had eggs.”
日本語訳:彼は答えました。「卵があったから。」
妻は夫に以下の2つの要望を伝えたつもりでした。
- 牛乳を1つ買ってきて欲しい
- 卵が売っていれば卵も6個買ってきて欲しい
ところが、夫は以下のように牛乳を買う一つの要望だと理解をしていました。
- 牛乳を1つ買ってくる
- 卵が売ってなければ牛乳は1つでいいが、卵が売っていれば牛乳を6つ買ってくる
これは、プログラミングでよく使われる「If~then」という条件分岐がネタになっています。
条件分岐というのは、「もし○○だったら××し、△△だったら□□しろ」というように、ある条件で次の行動を振り分けるものです。
この場合、この条件設定が間違ったことによって、正しい買い物ができなかった、というジョークです。
しかし、ここで妻を発注者であるクライアント、夫を受注者である制作会社やシステム開発会社、SIerと置き換えてみると、クライアントの要望を制作会社やシステム開発会社、SIerが実装したら全然要望と違うものが出来上がった、という笑うに笑えない事態が発生します。
もっと読む