システムは100%良品でなければならない


システムが100%良品であるならそれを構成するソフトウェアもまた良品でなければならないことになります。


では、その100%良品であるソフトウェアはどのようにして作ればいいのでしょうか。ソフトウェアはソフトウェアのコードとコードの元となる仕様とそれらを作る作業で形作られます。


作業では、仕様の作成からコードの作成を経てソフトウェアとしてリリースされます。リリースされるソフトウェアが100%良品であるためには、良品ではない情報や作成物は取り込むタイミングで受けれない仕組みが必要になります。


不良を取り除いた部品で作業を進めその作業の生産物がその作業の狙う良品であることを検査することで後工程に不良品が混入することを防止することも必要です。


でも、仕様の作成やコードのコーディングではどうしても不良が混入してしまいます。条件もれなどがそれにあたりますし、それらはエンジニアの経験の差や技術レベルの差からも生じます。


つまり、ソフトウェアの製造にあたってはいくら情報の精度を上げたり不良を除外しても作業工程に関わる「エンジニア」が自ら不良を製造しているということを認識しなければ作業の途上での不良の発生を制御することはできないということになってしまいます。


ではどうするか。個々のエンジニアの作成物がそれぞれのエンジニアに依存してしまうなら、一人のエンジニアの属性だけに染まらないような仕組みを設けるほかはないのです。


制度として設けるなら標準化を良品として求める限度まで行き渡らせる必要がありますし、作業の無駄や無理を排除した合理化も必要です。これは1つのことに対してエンジニアごとに別の解釈をさせないようにする、ということです。


こうした制度を設けても、それでも個々のエンジニアの持つ個性が思考となって表現される領域は残ります。仕様でもコードでも。そこのエリアを良品として確保するには一人のエンジニアだけの属性を持たせないようにする施策を作業方法として取り入れることになるでしょう。それが第三者によるインスペクションになるのです。


この取り組みには、頑張ってなんとかするという考え方はまったく必要ありません。100%の良品であるということを目標に、それを実現するために作成するものと作業を繰り返し手直しして目標に近づけていくだけなのです。








それぞれの作業に取り込むときに