WRブログ

システム開発における品質コストとは?

システム開発における品質コストとは?

「品質コスト」という言葉をご存知でしょうか。「品質」というワードは、各所で用いられていますので目にする機会がとても多いですが、「品質コスト」はあまり目にすることが無いかもしれません。

実は歴史のある「品質コスト」ですが、元々この言葉が生み出された製造業だけに留まらず、同じモノづくりの業種であるシステム開発の現場においても、用いられることが増えてきたのです。

今回は「品質コスト」について、ワードの出自や意味、その必要性をご紹介します。

■相次ぐ品質問題

昨今、日本の製造業の現場において品質不正が相次いでいます。品質の高さこそが世界市場において強みであるとされ、積み重ねてきた日本企業のモノづくりに対する信頼を、大きく揺るがしてしまう事態に発展しています。これまでに露見した品質問題の原因は、データ改ざんをはじめとした一種のコンプライアンス問題であったことが、一連のメディア報道からも垣間見えますが、理由はどうあれ、一度でも品質問題が起きてしまうと、その企業や企業が生み出す製品を見る目は厳しくなります。「あの企業、あの製品、本当に大丈夫なの?」と。

どんなに老舗で実績があっても、どんなに製品のシェアが高かったとしても、品質問題が発生してしまえば、その立場はあっという間に揺らぎます。問題の内容や状況、対処の仕方によっては、問題発覚以降は市場のプレーヤーとして継続していくことができず、退場させられてしまうこともあります。こうした場合の機会損失は著しく大きく、それをコストという金銭的な考え方に置き換えてみれば、品質面での失敗により発生する「失敗コスト」は、非常に大きなものになってしまうことは、誰しも容易に想像ができるものと思います。このように、品質は企業経営全体において極めて重要な要素なのです。

【事例】ソフトウェア欠陥によって企業が損失を被った事例1
【事例】ソフトウェア欠陥によって企業が損失を被った事例2

■品質コストとは?

モノづくりの現場で品質問題の発生を防ぐために考え出されたのが、「品質コスト」という考え方(管理ツール)です。「予防コスト」「評価コスト」「内部失敗コスト」「外部失敗コスト」の4種類を定義し、定量化して表現することが難しい「品質」を、比較的想像しやすい「コスト」という金銭的な表現に置き換えて考えることで、経営層から現場までが一丸となって、品質に対する意識を高めて行くことが狙いです。

表1: 品質コストの種類

予防コスト 製品に品質問題が起こらないようにするための対策に係わるコスト
(品質計画、工程管理、品質保証と品質管理システムの設計・実施、など)
評価コスト 製品が品質基準を満たしているか、確認するために必要なコスト
(検査・点検の作業、品質監査、など)
内部失敗コスト 製品の出荷前に発見された、品質基準を満たせない製品に対して発生するコスト
(品質を満たせなかった製品の製造原価、当該製品の廃棄や再生産に係わるコスト、など)
外部失敗コスト 品質基準を満たさない製品を出荷してしまったために発生するコスト
(顧客からのクレーム対応、リコール、機会損失、など)
■システム開発における品質の重要性

システム開発の領域においても、モノづくりの現場と同様に、品質は重要な要素です。ここでは、ある銀行の勘定系システム統合プロジェクトを例として取り上げてみます。

当該プロジェクトでは、テスト工程においてバグを十分に検出・修正することができず、本番稼働初日に大規模なシステム障害を発生させてしまいました。問題が収束するまでに要した時間は、1ヶ月以上。事の大きさを重く見た監督官庁が立ち入り調査を行いました。銀行の調査報告によれば当該システム障害における損害は20億円弱にも上り、大惨事となってしまいました。また、問題発生から数年に渡って、システムの刷新を凍結しなければならなかったとも言われています。顧客に対する信頼失墜の他に、情報投資の凍結という機会損失も引き起こし、失敗コストは莫大なものだったと言えるでしょう。

■システム開発と品質コスト

システム開発においても、品質コストに基づく管理が重要です。ここで、システム開発における品質コストの4種類をご説明したいと思います。

表2: システム開発における品質コストの種類

予防コスト 開発するシステムの品質に問題がないように講じる対策に必要なコスト
(品質レベルの定義、プロジェクト管理計画、開発標準の策定、テスト実施方針の策定、など)
評価コスト 開発したシステムが問題ないか確認するために必要なコスト
(テスト、受入検査、など)
内部失敗コスト 発見されたバグへの対応コスト
(ソースコードの修正、再テスト、設計書の修正、など)
外部失敗コスト 起きてしまったシステム障害の対応コスト
(顧客からのクレーム対応、システム改修、機会損失、など)

失敗コストについては、本来「発生してはいけないもの」です。そのため、失敗コストをいかに削減するか(できればゼロにする)ということが肝要なのです。

【「開発コストに対する新しい考え方」の図】
【「開発コストに対する新しい考え方」の図】

上図の通り、失敗コストは管理不良により発生し、できるだけ除外しなければなりません。そのためにも、プロジェクトの初期段階から品質を作り込む意識を持つことが重要です。

■失敗コストを減らすために

最後に、失敗コストを減らすための品質向上施策として「W字モデル」をご紹介します。

「失敗コストを減らす施策 W字モデル」の図
【「失敗コストを減らす施策 W字モデル」の図】

各工程で成果物のレビュー(検証)を行うことで、下流工程でバグを作り込む可能性を最小限に抑えます。プロジェクトにおいて発生しがちな手戻りを防ぎ、プロジェクト全体での工数削減が期待できます。工程ごとに品質を高める取り組みをすることで、失敗コストの発生を「未然に防ぐ」という考えに基づくモデルです。

■まとめ

プログラムを数行書けば、そこには必ずバグが潜んでいる、とも言われています。システム開発におけるテストの重要性は早くから叫ばれてきました。現在のシステム開発においてはテスト工程をいかに効率的に、且つ網羅的に行えるかが肝となっています。さらに品質を高め、作り込んでいくという観点では、W字モデルのように各工程で品質を高める施策を打っていくことが重要と言えるでしょう。