A Few Billion Lines of Code Later: Using Static Analysis to Find Bugs in the Real World (via λ The Ultimate)

Coverity という static bug finder を売る人たちの悲哀の物語。ていうかホラー。
"Real-world code" の ANSI/ISO 標準の無視っぷりとか、それを受け付けて謎な code を吐く compiler とか、bug finding tool の開発者に向かって「新しい version の方が見つける bug が多いってどういう事じゃワレ」と本末転倒な事を言ってくる人とか、「え? でも C の配列って読み書きしていい添字の最大値は要素数と一緒でしょ?」と言ってくる人とかに日夜苛まれる様子が、はだしのゲンぐらいの傍ら痛さで綴られている。

unsigned x @ "text";

って compile 通ったらどういう code になるわけ? (ちなみに C 言語だそうです)
「Bug finding tool の改良はむしろ悪、或いは少なくとも頭痛の種とみなされる (it's not uncommon for tool improvement to be viewed as "bad" or at least a problem)」ってところの、Coverity user たちの理不尽な要求とそれを生み出す、user の所属会社の人間力学が特に (嫌な意味で) 印象的。要するに

  1. bug finder が良くなって沢山 bug を見つけるようになり、bug count が上がる
  2. 髪の尖った上司がそれを自分とこの開発者達の怠慢と誤解する
  3. 開発者 (Coverity user) にその上司がキレる

ので、開発者から言わせれば突然に bug count 増やすな、という事らしい。その誤解を解くという選択肢が当然のように考察から除外されてるところとか、その解決策が「bug finder を upgrade しない」だったりするところとか、その圧力に負けて Coverity 開発者がわざと特定の改良を実装しないでいるあたりが、何とも恐ろしい。
こういうソビエトロシアな感じの腐敗って、Google みたいな上も下も髪の毛が尖ってない (傾向にあるらしい) 会社では起きなさそうに思えるんだけど、甘いのかなー。