ソフトウエア品質「歴史学」のすすめ
元 日本電気株式会社
笹部 進
1. はじめに
ソフトウエアの品質向上に関する様々な仕組みや工夫は、先人から受け継いだ技術蓄積があります。そしてその技術蓄積を支える考え方も一緒に蓄積されています。
本稿では、日本のソフトウエア品質技術の発展と世界とのつながりの一端を紹介しながら、日本に根付いているソフトウエア品質向上のやり方を、より一層、理解するためのヒントを提供したいと考えています。本稿は、特に若いソフトウエア技術者を意識していますが、もちろんベテランの方々にも、考え方の整理に役立てていただけるのでは、と思っています。
今日、さまざまな知識情報が我々の周りを取り巻いています。海を越えて多くの知識情報が我々の手元に届きます。このとき、海外からの情報発信に振り回されることなく、これまで発展させ蓄積してきた日本のやり方に、もっと自信を持って取り組んでほしいと思っています。ただ、注意願いたいのは、筆者の狙いは、一方的に日本のやり方の優位性を説くことではありません。むしろ、この地球上でおたがいに影響し合って、相互に発展してきた事実に目を向け、世界の全体像の中で、日本のやり方というものを理解することをお勧めするものです。
2. ソフトウエア工学とTQM(Total Quality Management)の結婚
SQiP(Software Quality Profession)活動は、その前身であるSPC研究委員会(ソフトウエア生産管理研究委員会。以下、SPCと呼ぶ。)の活動を含めれば、30年以上の歴史があります。この活動の狙いが「ソフトウエア工学とTQMの結婚」と称されているように、SPCでは、日本がハードウエア製造業の品質向上で成功を収めた原動力であるTQMの考え方と方法論を、ソフトウエア品質向上にも役立てるべく、活動を展開しました(参考文献1)。最近、若いソフトウエア技術者と話をすると、皆さんSPCもTQMも知っているのに、SPC活動の狙いが、上述の「結婚」であることを、意外にも知らないことに気がつきました。このため、あえてここで言及しました。
TQMに基づく品質管理は、日本製品の優秀性とともに世界の関係者の注目を浴びました。SPC活動に参加した多くの日本の企業が、TQMの考え方をもとにソフトウエア品質向上活動を実践して成果を上げました。NECが全社的に展開したSWQC活動における仕組みや工夫もその一例と言えるでしょう(参考文献2)。
3. 国際標準の中の日本の品質技術
良く知られているように、ISO9000ファミリーのマネジメント手法は、日本のTQMで培われたPDCAサイクルに基づいています。これは、日本の先人の努力によって国際標準に組み込まれたものです。ただ、国際標準の制定にかかわった専門家や、ハードウエア製造業に従事し日本の改善(Kaizen)を勉強した人達を除けば、海外ではISO9000ファミリーは知っていても、PDCAのことはあまり知られていません。また、ISO9000ファミリーの考え方の基礎となっているプロセスアプローチも、「品質は工程で作り込む」というTQMにおける考え方によるものです(参考文献1)。
一方、あまり語られていない話では、ハンフリー氏が提唱したソフトウエア成熟度モデルの中にも、日本のTQMの考え方が盛り込まれています。ハンフリー氏は、日本企業のソフトウエア品質の取り組みを調査するために、日本の主要なコンピュータメーカや、通信メーカを調べました。彼は、ソフトウエア成熟度モデルに関する彼の最初の著書において、日本がデミング博士やジュラン博士から統計的品質管理を学んだことに言及し、さらに、日本が現場の第一線において発展させた欠陥の未然防止活動(defect prevention)の重要性と、その実践が成功裏に展開されていることに言及しています。そして、誤りの原因分析(error cause analysis)と欠陥の未然防止(defect prevention)を、彼のソフトウエア成熟度モデルのレベル5の実践に必要なものと位置づけました(参考文献3)。
4. 日本におけるISO9000ファミリーやソフトウエア成熟度モデルの理解の壁
国際標準の記述や、ソフトウエア成熟度モデルの記述は、その性格上、付随する歴史的背景や、他の関連知識との関係は簡略化される傾向にあります。また、この傾向は、国際標準やソフトウエア成熟度モデルの教育場面や、アセスメントの実施場面においても同じであり、歴史的背景や他の知識情報との関係が明示的に意識されるわけではありません。また、欧米のソフトウエア品質の専門家全員が、必ずしも日本のTQMに精通しているわけではありません。このため、ISO9000ファミリーやソフトウエア成熟度モデルとTQMの関係は、十分、理解が促進されているとは言い難いのが現状です。
しかも、ISO9000ファミリーやソフトウエア成熟度モデルは、そのもう一つの側面、すなわち、プロセスの実践を客観的に実証するという欧米的な考え方の側面が強調されて理解されたため、その背後にあるPDCAやプロセスアプローチなどの考え方は、本質的にTQMと共通であるにもかかわらず、TQMとは異なった考え方に基づく国際標準やソフトウエア成熟度モデルであると理解されているのが現状と思われます。次章では、この「理解の壁」を取り崩し、より本質を理解するためのヒントを述べます。