ソフトウェアにおける品質は製品や設計書等のドキュメントに対するプロダクト品質と、作業に対するプロセス品質の2つで捉えることが多くあります。
ソフトウェア製品のライフサイクルにおいて、製品そのものやその過程(プロセス)の2つの側面から品質を捉えると以下のような図になります。
出典:「[ISO/IEC 25010 : 2011] JIS X 25010 : 2013、p31 図C.2」を参考に作図
これら4つは互いに影響しあっています。
使っているソフトウェアの品質がよくないと利用者が感じた時(④)、その原因はソフトウェアの動作が影響していますし(③)、ソフトウェア動作の品質が悪い原因は設計書やソースコードが影響しています(②)。
そして設計書やソースコードの品質が悪い原因はプロセスにあったりします(①)。
逆を辿ると、品質を上げていくためにはまず土台となるプロセスの品質を上げます(①)。
作業のルールや仕組みをしっかり作り、関係者がそれを守り成果物の質統一を図る。
これができると設計書やソースコードの品質を上げることにつながります(②)。
設計書やソースコードの質が上がるとソフトウェア動作の品質が上がります(③)。
ソフトウェア動作の品質が上がると、利用者から見た品質がよくなります(④)
もちろんすべてがこのケースにならない場合もありますが、品質の良し悪しを紐解き、品質を向上させるために何をすればよいか考えていく際にはとても有効なものとなります。
特に大人数が関わるプロジェクトにおいては①のプロセスから崩れることが多いです。
まずはプロセス品質をしっかり押さえていくことで、全体の品質向上につながります。

