Chappell & Associatesの代表であるDavid Chappell氏は、最近発表した2つのホワイトペーパーにおいて、ソフトウェア品質のさまざまな側面(機能的、構造的、プロセス的)と、品質に直接関心のあるグループ(ユーザ、開発者、スポンサー)、外部向けもしくは内部向けソフトウェアが時間とともに直面する欠陥の結果について説明している。
The Three Aspects of Software Quality: Functional, Structural, and Process (PDF) というホワイトペーパーにおいて、Chappell氏はソフトウェアの品質の3つの側面、機能的、構造的、プロセス的側面について説明している。それぞれ最終製品もしくはサービスに直接関心のある3つのグループ、ユーザ、開発者、スポンサーに関係がある。機能的品質とは、ソフトウェアがユーザの要求したタスクをどれだけうまく実行しているかを示している。Chappell氏はこのタイプのソフトウェア品質を4つの属性に分けている。
- ソフトウェアが与えられた要求を満たしている
- ソフトウェアにはほとんど欠陥がない
- ソフトウェアは妥当なパフォーマンスを備えている
- ソフトウェアは学びやすく、使いやすい
構造的品質とは、そのソフトウェアがどれだけうまく構成されているかを評価したものであり、以下の属性によって定義される。
- コードのテスト容易性
- コードのメンテナンス性
- コードの理解しやすさ
- コードの効率 – リソースをどれだけ効率よく管理しているか?
- コードのセキュリティ – よく見られるセキュリティ脅威を防げているか?
機能的品質と構造的品質は「ソフトウェア品質の議論で一番注目される」ところだが、Chappell氏はプロセス的品質も非常に重要だと考えている。プロセス的品質についてよく知られている属性は次のようなものだ。
- そのソフトウェアは納期を満たしている
- そのソフトウェアは予算を満たしている
- 品質の高いソフトウェアを確実に提供する反復可能な開発プロセスが実施されている
Chappell氏によると、ユーザは主に機能的品質に関心があり、プロセス的品質の納期の属性にも多少関心がある。開発者は主に構造的品質を気にしている。自分の仕事に直接影響があるためだ。しかし、ユーザほどではないものの機能的品質にも関心があり、「評価される多くの基準を提供する」ためにプロセス的品質にも関心がある。プロジェクトのスポンサーはそれぞれが最終結果に影響を及ぼすことを認識して、ソフトウェア品質のすべての側面を気にしなくてはならない。
The Business Value of Software Quality (PDF) というホワイトペーパーにおいて、Chappell氏は品質の低いソフトウェアのビジネスへの影響について説明している。彼はソフトウェアを、組織の顧客によって使われる外部向けソフトウェアと組織自体の従業員によって使われる内部向けソフトウェアの2つのタイプに分けている。
Chappell氏は、あるデータベースにおける既知のセキュリティ脆弱性を突かれたことで7000万アカウントに影響が及んだ2011年4月のSony PlayStation Networkセキュリティ侵害によるダメージ、そして3日間にわたって世界中のRIMの顧客に影響を及ぼした2011年10月のバックアップシステム障害によるダメージについて取り上げた。Chappell氏によると、こうした品質欠陥は時間とともにビジネスに次のような影響を及ぼす。
- ビジネスを失うことによる金銭的損失
- 実施を要する補償による金銭的損失
- 顧客を失うことによる金銭的損失
- 訴訟による金銭的損失
- ブランド価値の損失
内部向けソフトウェアにおける品質の欠如は時間とともに次のような結果をもたらす。
- ユーザへの導入遅延
- ビジネスメリットの減少
- ITリーダーの課題増加
- IT部門のブランド価値低下
- ソフトウェアのアウトソーシング機会の増加
成功を収めるには、内部向けソフトでも外部向けソフトでも、これら3つの品質(機能的、構造的、プロセス的)すべてに注意を払う必要がある。