ソフトウエアの品質

話の元は「品質に交渉の余地はあるか?:知識ゼロから学ぶ ソフトウェアテスト:So-netブログ」と「想定されないバグ:知識ゼロから学ぶ ソフトウェアテスト:So-netブログ」の2つで、品質の話。最初、交渉の余地がどういった意味かわからなかったけど、手抜きをしてでもあくまでも顧客要求を実現するのかどうかという話だった。また2つ目は、さすがにどうにもならなかったと思われる事例。
うちでは品質と言うとバグ曲線やサブシステムごとの不具合数といったソフトウエアの欠陥を指すことが多いが、でも1つ目の話にあるように、品質にはさまざまな側面を持っていて、例えば内部顧客でもいいので、顧客の満足度というのは忘れられがちな品質の1つの側面である。ただ1つ目の話にあるように、コードを犠牲にした満足度は本来の満足度ではないことに注意しなければならない。顧客があまりにソフトに対して無知か、作り手が顧客は何もわかっていないと思い込んでいる、ことが考えられる。一見難しそうだが、それらを解決するには顧客と開発側がコミュニケーションをとるという、とてもシンプルな答えに落ち着くことになる。単純だがそれが全てに感じられる説得力があった。
また「品質」の定義についても話をし、「質」を辞書で調べてみると「実際の内容」といった意味があり、品質は物事の質なので、ここからも品質には様々な側面があることがわかった。
ちなみに「質」の反対語が「量」とのことで、何か品質を定量的に測定することが矛盾していることのように思えて面白かった。しかし良く考えると品質を数値で表すことは品質のある一面を表しているにすぎないので、質と量は相容れない間柄なのかもしれない。
2つ目の話はどこまで想定できるのかという話なので、それはもう人のセンスだろ、ということになった。つまりどんなにテストの網羅性をあげようがレビューしようが、気付けない不具合には気付けないのだ。プロセスでも手法でもなくて、その「人」なんだ、ということ。これも大変に同意できる。
結局この2つの話からソフト開発は人間が作っているものだから、人間同士があたりまえに行う営みであるコミュニケーションとか信頼、センスがソフト開発に大きな影響を持つのだ、ということを再認識させてくれた。