ソフトウェアの品質

http://www.infoq.com/jp/news/2009/04/agile_quality

何を言っているのか意味不明な記事が多いInfoQだけど、上の記事の内容にはだいたい賛成だなー。

ソフトウェアで品質の話をしていると漠然と「品質=バグが少ない」って考えがちだけど、それは大間違い。実際には変更コストが少ないとか、パフォーマンスがいいとか、拡張性に優れているとかいろいろなファクタがあって製品ごとにバランスを取って定義されるのがソフトウェアの品質だ。

なので「○○で高品質」なんていう歌い文句があったら、そこで歌われている品質がどういうモノか見極める必要がある。最近多いのだと「TestCodeを書いて高品質!」だけど、TestCodeを整備するために消費するコストとそれをメンテナンスするコストを考えると、トータルとして品質が低下する可能性は無視できないほど大きい。

ついでに「品質=バグが少ない」とか思ってるならまだマシな方で、「品質=自己満足」だったり「品質=お客さんからお金を取れる理由になる実際には役に立たない無駄な作業」とかだったりするので、この辺になってくるとほとんど救いようがない。

記事の内容で面白いのは「ソフトウェアの品質は常に劣化する」ってしてるところかも。言われてみれば「エントロピーの増大=品質の劣化」は正しそうだけど当たり前すぎて気づかなかった。もうちっと考えてみよう。