ソフトウェア開発に30数年かかわっていますが、相変わらずシステムをリリース後に多かれ少なかれ不具合が発生しています。その要因は、開発の手順、要員、環境など多岐にわたりますが、品質を改善する取組は日々行われてきました。
20数年前にQC手法をソフトウェア開発に取り入れて、改善活動を実施してみたり10数年前からISO9000の品質マネジメントシステムを導入したりして、品質の向上に取り組んできました。
ただ、現実的には、QC手法のノウハウはマスターできたもののそれを効果的に改善に結びつけたとはいえず、ISO9000についても、認証を取得することが目的になる傾向となり真の改善活動とはいえなかったのが反省としてあります。
問題の真の原因を求めるための分析を実施し、的確な対策を実施することが品質向上につながることは頭では理解していても、それを共有、横展開できていないのが現状のように思えます。
課題として、
1)原因分析が不十分で真の原因にたどりつかず、対策が不十分で問題が再発
2)問題の要因が「人」にあると片づけられマネジメントやプロセス面の課題としてまで分析できていない
3)真の原因、対策はパターン化されるが、その傾向やノウハウの共有・横展開ができていない
前述したQC手法の七つ道具のうちのひとつである特性要因図(品質に影響を及ぼすと思われる要因の関連を系統的に網羅して図解したもの)を活用して、重要と思われる要因を抽出して、 問題解決に結びつけることも可能ですが、数年前にある開発案件で問題の要因分析手法として「なぜなぜ分析」というものを利用して真の要因を求め、それに対する対策を立てる場面に立ち会いました。その時はあまり実効性は感じませんでしたが、最近のある開発案件で再度、その手法を利用して品質改善の取組を実施することになり、その実効性なるものを改めて感じた次第です。
「なぜなぜ分析」とは、従来はTQM(総合品質管理)などの一環として製造業の現場で導入されており、災害やクレーム、不良、故障といったトラブルに対して「なぜ起きたのか?」「なぜミスしたことにすぐ気づかなかったのか?」といった問いを繰り返すことで、作業環境や作業手順などの改善につなげる手法です。
ソフトウェア開発においても、その手法を実践してみて、再発防止の取り組みを検討してみました。
まず、「なぜ」を考える前に、以下のことを考慮する必要があります。
1)課題を見極めて絞り込むこと。
2)先入観を入れず、見たままの姿を表現し、具体的に表現すること。
そして、真の要因に迫るためには以下のポイントが重要です。
1)原因分析の狙いを踏まえた「なぜ」を展開
例えば、「記載間違いの仕様書を作成した」要因は、「新人が担当した」のはダメで、「要件を担当者が勘違いしたため」とする。
2)誰でも同じイメージを持つ「なぜ」を表現する
例えば、「パタメータの設定ミス」要因は、「設定が不明確であった」ではなく「設定の手順が決まっていなかった」とする。
ここで注意すべき点は、「現場を観察せずに事象を記述する」「逆読みして論理のつながりを確かめない」「担当者の個人的な理由を掘り下げようとする」などはやってはいけない点があります。こうしたやり方だと「教育不足」「担当者の注意力不足」というような同様な結論になってしまいます。
次に、原因分析から対策検討した結果の確認ポイントとしては以下の点に留意する必要があります。
1)なぜなぜ分析結果
論理の飛躍がないかを、逆から読んで話が通じるか。
2)真の要因
単に現象面での問題とせずに、マネジメントやプロセス面まで踏み込んだ課題としてとらえているか。
3)再発防止策
・マネジメントやプロセス面までに落とし込んでいるか。
・時間が経過したり、人が変わっても対策内容が有効か。
・類似の障害がないか横展開できているか。
4)担当者と期限
いつまでにだれが実施するかが明確になっているか。
ここでは、再発防止策の考え方について以下の点を考慮します。
1)問題が発生しないようにしてしまう
・人手による作業を自動化する。
・類似の障害の対策を横展開して予防する。
・属人化を排除するための手順化、ルール化する。
2)問題が発生しても被害が小さいうちに気づき、その発生を抑える
・異常の見える化、警報を自動化、日々の点検などを容易に実施できるようにする。
・ルール化、仕組みの見直し、ルールの啓蒙・指導
実際この手法を実践してみて、なぜなぜの繰り返しの落とどころがポイントになると思います。トヨタ自動車ではなぜなぜを5回繰り返すようですが、なぜなぜを繰り返しすぎると「社長がわるい」と何の対策も打てない真因に結びついてしまいます。要は、分析の狙い(落としどころ)は、再発防止策を導くことであることを肝に銘じておくことです。
<参考文献>「なぜなぜ分析 実践編」日経BP社 小倉仁志
■執筆者プロフィール
西田 則夫(Nishida Norio)
情報処理プロジェクトマネジャー、ITコーディネータ
マネジメントの経験を顧客満足の向上に役立てたいと思います。
Norio.Nishida@mk.scsk.com