ソフトウェアの「品質」とは
ソフトウェアの品質は良くしたいですよね。バグだらけのシステムなんて作りたくないです。ところでどうなったら「品質が良い」と言えるのでしょうか?
バグが0件だったら品質が良いのでしょうか?1件でもバグがあったら品質が悪い?そもそも「品質」ってなんでしょう?そこで今回は「品質」について書きたいと思います。
なお、ここではISOにおける品質マネジメントシステムをベースとし、私自身の経験を交えた内容となります。また、若手にもわかりやすいようにISOの文言は極力使いませんので、厳密にいうとISOとは違う部分もあります。「ざっくりでは合っている」という感じで読んで頂ければと思います。
■ 品質とは
顧客の要求事項を達成できるレベルの特性が備わっている程度のもの
例えば、あるWEBサイトのID登録機能を作るとします。画面構成は「個人情報入力画面」⇒「入力内容確認画面」⇒「ID登録完了画面」とします。また、顧客の要求は「IDの登録ができて、リリース後の不具合が10件以内」だったとします。
この場合「ID登録が出来て、不具合が10件以内」であれば品質は満たしたことになります。よくある誤解が「不具合が0件でなければ品質は悪い」と思い込んでいるケースです。
そのため、不具合0件を目指して作り込みをします。その結果、コスト超過、スケジュール遅延になるという・・・。
顧客が「リリース後に1件も不具合を出すな」というなら、不具合が0件の場合のみ品質を満たしたことになりますが、そうでなければそこまでする必要はありません。
■ 要求事項に合わせることが重要
QMSでは「過度に品質を高める必要はない」とされています。そのため、「10件の不具合は出しても良い」という要求に対して不具合0件を目指すのは過剰品質となり、推奨されていません。
また、指標値が不具合件数ではない場合もあります。例えば、スピード重視のシステムの場合です。「世界最初にサービスを開始したい」という顧客の要求事項があるシステムであれば、多少のバグがあってもリリースし、サービスインしてからバグを潰しこむことがあります。
人の生命や生活に関わる医療系、金融系なんかだと不具合0件を目指します。リリースを延期したとしても不具合のないシステムが要求事項となります。
このように、システム特性等によって品質に対する要求事項は変わります。大事なことは要求事項を正確に把握することであり、それを満たすレベルで過剰な品質は作り込まないということです。