goo blog サービス終了のお知らせ 

ラン

定年後の人生、日々の ”こと” つれづれ思いつくままに・・・

品質保証活動の実践活動(その5:品質向上啓蒙活動)

2015年01月07日 | 品質保証活動のあり方
品質を向上するために品質管理をより高度なレベルに高めるための活動が品質改善である。

TQCでは、PDCAによるボトムアップ活動が多く実践されているが、改善の方向性に対して体系的に整理されたものはこれまでなかった。

これに対して、カーネギーメロン大学・ソフトウェア工学研究所(SEI)が開発した能力成熟度モデル(CMM: Capability Maturity Model)は、ソフトウェアプロセスの改善の方向を示すモデルとして、世界的に注目されている。
CMMは、レベル2がソフトウェア開発プロジェクトレベルでの基本的なプロセスを示しており、
レベル3が組織レベルのプロセス、レベル4が組織におけるプロセスの定量的な分析、
レベル5がプロセスと技術の継続的な革新を示している。

各レベルは継続的なプロセスの改善にとって次のレベルの基礎をなすものであって、この道筋をもとに改善を進めることにより、品質やコスト、開発期間などの予測精度や、品質、生産性自体の効果的な向上が期待できるとしている。

【啓蒙運動と表彰】
品質目標値設定により目標値の達成状況をフォローし、成果の良かった部門は品質向上に関する賞を出し名誉を与えることでより意欲を高めると良い。
それと重要なことは何故成果が良かったのかを追究しその成功パターンのTTを図ることである。
何でも言いから、「上手く行った!」ということを取り上げる。
「なぜ上手く行ったのか」、「何が効果を発揮したのか」を取り上げる。
そうすることで、「成功のパターン」を何度も何度も焼き直し(レジスト)する。
品質保証部門が中心となって「啓蒙運動」に取り組み上手く行ったことを見付けて誉め「賞」を上げるのが良い。
そしてその成功パターンを発表し広くTTすることが重要である。

一般的に、反省会の場で行なわれているのは、皮肉にも、「失敗のパターン」をレジストしているだけで終わっていることが多い。
同じことが「バグ(不具合)報告書」にも見ることが出来る。
そこでは発生のメカニズムが「再現」という行為を繰り返しながら、何時間もかかって追及され、ようやく見つけた仕掛けが「原因」として書かれ、それを修正したことが記入されそれで終わっている。

結局、「失敗のパターン」をレジストする結果となり、問題の解決には繋がらない。
このようなことを防ぐために、例えば、「バグ(不具合)報告書」に「所見」欄を設け、(サブ)リーダーが、

・「この事態をどのようにして避けるべきだったか」、
・「次の機会にはどうするか」というように、

「上手く行く為のパターン」を書くことが必要である。
体に染み付いた「失敗のパターン」を消すためには、それ以上に「成功のパターン」をレジストしなければならない。
自然に行動として出るためのトレーニングとしては、プロの運動選手が実践しているように普段から「上手く行ったパターン」を繰り返しイメージトレーニングすることが大切である。
現状は一般的に成果の悪かった部門が叩かれる傾向があり失敗の反省会が行われているがいくら失敗の反省会を実施しても成功には結びつかない。
「失敗のパターン」をレジストするだけとなり、問題の解決には繋がらない。

品質保証活動の実践活動(その4:5Whyによる動機的原因追求)

2015年01月07日 | 品質保証活動のあり方
目的

事故を起こした原因には、引き金となった直接的原因と、その直接的原因を作り込むに至った原因、動機的原因がある。

直接的原因には、事故を引き起こした直接的な原因を言う。
一般的に「原因」と言われるもので、プログラムのロジック不良であったり、マニュアルの記載不良などがある。
これらの不良は、認識の誤りや、判断の誤りなどに基づいて作り込まれる。

動機的原因は、直接的な原因の背景にある本質的な原因を「動機的原因」と呼んでいる。
これを追求することで事故の真のポテンシャルを顕在化できる。
さらに、本質的な対策を講ずることが可能となり、これを「再発防止対策」と呼んでいる。
動機的原因を追求する目的は、認識や判断のどこが弱かったのかを明らかにして二度と同様の事故を起こさない再発防止策を求めることにある。

追求の手順

○問題の認識:事実確認は現場・現物・現実(三現主義)を見てやれ

事故には色々な問題の見え方(顔)がある。
何が問題かを誤ると、本当の問題に対する再発防止策にならない。
従って、事実確認は必ず現場・現物・現実を見てやること。これは刑事の事件に対する姿勢でも同じです。
ハードウェアと同じようにソフトウェアも現物確認は重要である。
ソフトウェアの場合の現物は、仕様書とソースプログラムが一般的である。
仕様変更の場合は、変更前と変更後の仕様書が必要。
ソースについても同様に変更前と変更後が必要である。
見逃しに関しては、テスト計画書、テスト項目(PCL)、テスト結果等が必要である。
他にも必要に応じてレビュー実施報告書等準備すること。
例えば、オンラインダウンと言う事故には、単にダウンをしたことが問題なのか、許容ダウン時間内に回復できなかったことが問題なのか、色々な顔があり、各々異なる再発防止策が必要である。

動機的原因を追求しようとするときには、お客様にとって、何が迷惑だったのかをよく理解してから、追求を開始すること。

○直接原因の特定

技術的に何が原因で事故が発生したのかを特定する。
原因は整理し、事故ポテンシャルの高いものに絞込んでから以下に展開する。

○追求の切り口

不良は作り込まなかったらよかったし、予め適切なテストを行い除去していれば良かった。
また、適切な指示をしていたら良かったし、確認すればよかったと、必ず作り込みと摘出と言うペアで、「たら」「れば」の反省がある。追求はこの作り込みと摘出を切り口として行う。

○動機的原因追求

直接的原因を作り込むに至った、又は摘出できなかったのはなぜかを「なぜ」、「なぜ」と追求する。
必ずしも5Wまで追求する必要はない。
3Wでも4Wでも動機的原因が明らかになったところでやめてよい。
逆に、5Wまで追求しても動機的原因が導き出されない場合は、さらに6W,7Wと追求を続けること。

○再発防止策

追求した動機的原因に対応した、二度と起こさないための再発防止策を求める。
自分の立場(管理者、担当者)で追求すること。
例えば、プログラム作成を外注先に作業外注しているプログラムで不良が発生した場合。
コーディングを有識者とレビューすると言った再発防止策になるケースがある。
これは、発注のやり方や、検収時の受け入れ検査のやり方、プロジェクト管理のやり方に問題がなかったかを追求すべきである。
外注先でのレビューが問題で避けられないのであれば、なぜレビューをやらせ、レビュー内容を確認する仕組みをつくらなかったという、自分の立場で追求すること。
顧客、外注先などの他人の判断や認識の誤りに基づいた再発防止策は他人任せであり,主体性がない。
自分の身を責め、自分の中に反省を見出して追求すること。

【真の原因追究】

たとえば、一般的なバグ対策は、バグを再現させプログラムの流れをトレースし、渡されたパラメータのチェックが抜けていたことに気付き、パラメータの正当性のチェックを追加する。その後、もう一度同じデータを流して、発生しなくなったことを確認し終了する。
多くの開発組織では、これでバグ対策したことになる。

「どうしてあの時、パラメータをチェックしなかったのか」ということの原因(真の原因*)を解明していない。
解明したのは発生の仕組みであって、バグの作り込み原因ではない。
バグ作り込みの真の原因は、パラメータをチェックするかどうかが、一人ひとりの判断に任されている組織の体制であり、その時点でエラーコードが決められていない作業の手順であり、さらに言えば、職場の文化で、「設計」を飛ばして、コーディングの作業に入ったと思われる。

不具合報告書にしても、反省会にしても、真の「失敗の原因」を掴んでいるかが問題になる。「原因」と言うのは、それが改善されれば症状が出ない。
しかしながら、真の「原因」が他にある場合、それに気付かなければ症状は改善しない。

「反省会」は、そこで提案された「改善案=本来は成功のパターン」が、単に「失敗のパターン」を裏返しただけのものか、真の「原因」に触れるものであるかどうかを議論する場でもある。

そうして、それが上手く行きそうだとすれば、何度も「成功のパターン」を繰り返し身に付けることが大切なことなのである。

*:真の原因追究に関して、5whyによる追究が効果的である。

品質保証活動の実践活動(その3:品質会議/品質月報)

2015年01月06日 | 品質保証活動のあり方
品質会議は、

主に社外事故状況、主要製品の品質向上策を継続フォローして、製品品質の維持と改善を図るために実施する。

品質月報は、

製品の稼動状況及び検査状況を幹部及び各部門に報告し、品質向上施策等の社内への周知徹底を図ることを目的とする。

下記品質会議で取り上げる事柄について述べる。

(1)社外事故状況の報告

社外事故に対する是正処置/予防処置のフォローアップを速やかに行い、類似事故の再発防止の一助とする。更に、関連製品の予防処置を図る。

(2)各製品の品質状況の報告

製品検査状況の報告を行い、問題があればフォローアップする。

(3)品質向上施策を紹介又は開発上の問題点と対策報告

品質向上施策を紹介又は開発上の問題点と対策について討議することで、他プロジェクトでの再発を防止する。

・試送までの品質向上施策の紹介
・主要製品に対する問題点と対策

(4)再発防止/予防処置

・不良事例紹介
・予防処置が必要か否かの検討
・予防処置の計画/結果/見直し内容を審議。

(5)その他

・共通技術紹介:共通技術として全社的に適用できる技術があれば紹介
・各種ツールの適用状況
・各部懸案事項検討:各部門での懸案事項を協議

【品質会議の基本姿勢(三原則)】

(1)自主活動である
(2)バグを憎んで人は憎まず
(3)起きてしまった不良は建設的に活用

品質保証活動の実践活動(その2:品質目標値設定)

2015年01月06日 | 品質保証活動のあり方
最終の目標は無欠陥(ZD:Zero Defects)であると言うことはいうまでもないが、
ここで述べる品質目標値は品質を確保するために各工程で実施すべき作業の目標値である。
これらの目標値は間発部門ごとに毎期見直しを行い設定する。

品質目標値設定は、
Plan(不良予防施策、不良目標値)、
Do(レビュー、不良適出)、
Check(不良分析)、
Action(対策)を設計、デバック工程から、製品検査、顧客稼働までを含む全ての段階でこれを実行しなければならない。
顧客稼働時の品質(稼働品質)管理では、社外事故件数の目標値を設定し、品質管理を行う。

PLAN:品質目標値の計画

設計/開発部門は、下記部門ごとの品質施策を計画する。
・不良予防(品質作り込み)施策の設定
・潜在不良の適出件数(社外事故分析による)の設定等

なお、品質目標値に関しては、
(1)品質目標値の設定

・プログラム不良密度の設定
・工程別不良摘出件数の設定等

各品質指標の基準値は、会社の方針及び過去の実績に基づき、品質保証部門が設定する。
品質保証部門は、品質指標及び基準値を明確にし、品質目標値の設定を各部門に指示し決定する。
品質保証部門は、必要に応じ各部門の品質目標値の審議を実施し、各部門の品質目標値について品質管理責任者の承認を受ける。

(2)品質目標値の実績管理

品質保証部門は、

・品質目標値の実績として、品質データを部門毎に集計し、品質月報にて報告する。
・未達成の項目の原因と対策をフォローし、品質月報にて報告する。
・期末の達成状況に対する各部門の見解を収集し、品質月報にて報告する。

DO:品質の作り込み
基本は、「品質は要求仕様と設計で作り込まなければならない」が、ここでは「設計、製造のレビュー」をキチンと実施することで、ヒューマンエラーを作り込まないようにしなければならない。
ヒューマンエラーの作り込み防止の一手法としてツールの事例を紹介する。

○「コードインスペクションツール」の紹介
C言語のソース・コードについてユーザー企業が定めたコーディング規約に合致しているかどうか調べるソフト「anyWarp CodeDirector for C」。
組み込み系の開発プロジェクト向けの製品で,Windows 2000以降で動作。
特徴は,調査対象となるソース・コードを,広く普及している無償のバージョン管理ソフト「CVS」から取得できること。
設定したスケジュールで調査を実行できる。調査結果はHTMLでも出力可能。
プロジェクト管理者はプロジェクトを通してソフトウエアの品質を把握できるほか,プログラマは自分のソース・コードの品質に関する情報を取得できるためモチベーションが高まる。

○「ソースコード検証サービスツール」の紹介
結合テスト及びシステムテストの段階で論理パスを検索し各種の不具合を検地するソフト「VeriSource」。
特徴は、不正なメモリアクセス、リソースリーク、未初期化、デッドコード等の不具合を検出し内容の優先順位をレベル分けし、フィードバック(レポート)する。
これにより単体テスト項目だけでは網羅できにくい論理パスに潜む不具合を結合テスト前に
解消することで結合テスト工程の生産性向上にも役立つ。

○「ソースコード検証サービスツール」の紹介
開発のテスト段階で論理パスを検索し各種の不具合を検地するソフト「InspectPro」。
特徴は、信頼性検証(不正アクセス、メモリリーク、初期化漏れ、未使用コード等)とセキュリティ検証(バッファオーバーフロー、汚染されたデータ等)に関する不具合を検出し内容の優先順位をレベル分けし、フィードバック(レポート)する。
これにより単体テスト項目だけでは網羅できにくい論理パスに潜む不具合を結合テスト前に
解消することで結合テスト工程の生産性向上にも役立つ。

CHECK:不良分析
下記観点でいろいろな角度から分析評価すること。
・作り込み要因分析
・前工程での未適出原因分析
・5W(Why)による動機的原因(根本原因)の追求

バグ情報は宝物
バグ情報は、
・ 当該プロジェクトにとって、何が問題であるかの手掛かりを掴む糸口となる。
・ 当該プロジェクトにとって、何処から取組めばよいのかを知ることの出来る糸口となる。

ACTION:
見直し観点を要求/設定、根本対策(再発防止)

□見直し観点を要求/設定すること
・不合格に対する設計への品質向上要求
・類似不良の適出
・不良多発機能/モジュールの見直し(設計に「リコーディング基準」を設定させるとよい)等

□根本対策(再発防止)を図ること
・作り込み防止対策/見逃し防止対策
・設計のテスト不良防止策等

品質保証活動の実践活動(その1:リスク管理)

2015年01月06日 | 品質保証活動のあり方
リスクは、先ず始めに、定義フェーズ*で潜在的な要因を分析しリスク設定を立案することから始めなければならない。

次に、リスク設定で立案したリスクランク**に対してリスクの回避策や軽減策を盛り込んだ開発計画書/プロジェクト計画書を作成し対策を具体的に推進していくことにより、トラブルプロジェクトの発生を未然防止するものである。

*:ソフトウェアの品質(ソフトウェアのライフサイクル)を参照。
**:考え方の事例を示す。


事例1:
例えばリスクランク1~4の4段階(要求される信頼性を秒オーダで回復要、分オーダで回復要、1時間以内に回復要、1時間以上で回復)とし、定義フェーズの見積り時に設定する。

ランク決定の要因項目としては、開発・構築するシステムの位置付け・影響度、及び信頼性に対する顧客ニーズから判断する。

リスクランクは、開発対象となるシステムに対するランクであり、当該システムのプロジェクトそれぞれの開発作業、及び稼働後の保守作業に対しても適用される。

すなわち、顧客見積りに反映・申請しなければならない事項であり、お客様に必要性を理解してもらうことが重要である。


事例2;
5段階のリスクランクの場合。

本事例は、システムの重要度(顧客の立場)よりメーカとしての立場からリスクランクを設定する事例である。

この場合でも事例1のシステムの考慮は部門内で行う必要があるのでリスクの高いものは、事例2においても必然的に監視が必要な高いランクに反映される。

5;全社重要プロジェクト:全社で特別に監視が必要な重要プロジェクト
4;事業部重要プロジェクト:事業部で特別に監視が必要なプロジェクト
3;部門の重要プロジェクト:部としての監視が必要なプロジェクト
2;課の重要プロジェクト:課としての監視が必要なプロジェクト
1;ユニット内プロジェクト:自主管理にとどめるプロジェクト