不良コードで「後から変えられない」のは3つだけ

不良コード体系の設計会議は、たいてい「コードを何個にするか」から始まります。しかし個数は後から調整できます。稼働後に変更が事実上不可能なのは、次の3つです。

設計項目稼働後の変更理由
コードの軸の数(現象だけか、現象+箇所か、など)ほぼ不可能軸を増やすと過去データに欠損軸が生まれ、全期間の集計が成立しなくなる
既存コードの意味の再定義不可能同じコードが期間によって別の意味を持ち、時系列比較ができなくなる
1不良品に付けられるコードの個数(1件か複数か)極めて困難データモデル(1対1か1対多か)そのものが変わる
コードの追加可能追加は過去データを壊さない
コードの廃止(新規使用の停止)可能過去データは残したまま、選択肢から外せばよい
表示名・並び順・所属グループ可能分析軸として別テーブルで持てば影響しない

つまり設計会議で時間をかけるべきは、上の3行です。個数と名称の議論は、この3つが決まったあとで構いません。マスタ全体の設計思想はMESのマスタ設計の記事で扱います。

現象・箇所・原因を1つのコードに混ぜない

現場でもっとも多い設計上の誤りは、性質の違う情報を1つのコードに詰め込むことです。「A面キズ」「溶接不良」「材料ロット不良」といったコードが同じリストに並んでいる状態が典型例です。

このリストには3種類の情報が混在しています。

  • 現象(何が起きているか):キズ、寸法外れ、欠品、変形
  • 箇所(どこに起きているか):A面、第3工程、下型、ノズル2番
  • 原因(なぜ起きたか):材料ロット、設定ミス、金型摩耗

3つを1コードに混ぜると、集計時に必ず破綻します。「キズ」で集計したいのに「A面キズ」と「B面キズ」が別コードで、しかも「溶接不良」には箇所が入っていない。こうなると、どの軸でも全体像が出せません。

不良コードを現象・箇所・原因の3軸に分離するモデル図 軸① 現象 キズ/寸法外れ/欠品 変形/汚れ/異音 検出時に必ず記録(必須) 軸② 箇所 工程/設備/部位 面・座標・治具番号 検出時に記録(必須) 軸③ 原因 材料/設備/方法/人 環境/設計 調査後に付与(任意・後追い) 不良イベント(1件=1レコード:ロット/個体・工程・検出者・検出時刻・数量) 3軸はこのレコードの属性として別々に持つ。連結した1本のコードにしない 検出時に原因を入力させると、現場は「いつもの原因」を選び、原因データは分析に使えなくなる
不良情報の3軸分離。検出時に記録するのは現象と箇所まで。原因は調査の結果として後から付ける。

軸③を検出時に入力させないことが、この設計の要点です。検査員は現象を見ているのであって、原因を知っているわけではありません。検出の瞬間に原因の入力を強制すると、正しくない原因が大量に記録され、そのデータを根拠に対策が打たれます。原因は、不適合処理や是正の過程で判明した時点で付与する設計にしてください(不適合管理とCAPAの記事)。

桁と階層は「現場が選ぶ深さ」から逆算する

コードの桁数を先に決めると、階層が桁に合わせて歪みます。順序は逆で、現場が検出時に選ぶ深さから決めます。

  • 現象は2階層(大分類→現象)まで。末端は工程あたり10〜20個
  • 箇所は工程マスタ・設備マスタから自動で決まる部分を最大化し、人が選ぶのは部位のみ
  • 原因は3階層(要因分類→対象→詳細)。ただし入力するのは技術者であって現場ではない

桁数は、この階層が決まったあとに「各階層の最大数+将来の余裕2倍」で機械的に決まります。将来の余裕を見ずに桁を詰めると、数年後にコード体系の作り直しが必要になります。

「その他」の肥大は、設計ではなく運用で防ぐ

どんなコード体系でも「その他」は必要です。選択肢にない不良が出たときに、記録そのものを止めないためです。問題は、その他が全体の10%、20%と増えていくことです。

防ぐ方法は運用側にあります。

  1. 「その他」は大分類の直下にだけ置く。 最上位に単独の「その他」を置かない。「表面不良/その他」「寸法不良/その他」のように、大分類までは必ず特定させます
  2. 「その他」を選んだ場合はフリーテキストを必須にする。 入力の手間を理由に、現場は具体的なコードがあるならそちらを選ぶようになります
  3. 月次で「その他」のテキストを分類し、10件を超えた表現は新コードにする。 これを実施する担当を決めてください。決めなければ誰もやりません
  4. 「その他」の比率をKPIとして監視する。 5%を超えたらコード体系の見直しサインです

この4点を運用に組み込んでおくと、コード体系は自然に現場の実態へ近づいていきます。逆に、稼働前にコードを網羅しようとして200個作った体系は、ほぼ確実に使われないコードの山になります。

手直し品の状態遷移を、コードより先に決める

不良コードの設計とセットで決めるべきなのが、不良と判定された品物がその後どうなるかの状態遷移です。ここが曖昧だと、不良率の分母・分子が定義できません。

最低限、次の状態と遷移を定義してください。

  • 検出 → 保留(判定待ち)
  • 保留 → 手直し → 再検査 → 合格/再不良
  • 保留 → 特別採用(そのまま使用)
  • 保留 → 廃棄
  • 保留 → 返却(材料・部品を供給元へ)

そのうえで、次の3つを決めます。

  • 手直しして合格した品は、不良として数えるか。 直行率では数え、最終不良率では数えない、という二本立てが一般的です
  • 再不良になった品は、不良件数を2回数えるか。 数える場合、不良率が100%を超える工程が発生し得ます
  • 特別採用は不良か。 品質記録上は不適合、原価上は良品として扱うのが通例で、集計軸を分ける必要があります

この3つを決めずにコード設計を進めると、稼働後に「不良率の数字が部門ごとに違う」という問題が必ず起きます。状態遷移 → 数え方のルール → コード体系の順に決めてください。工程内検査の責任分界や検査結果の持ち方は品質管理機能の記事、不良データを工程能力の分析に使う段階はSPCの記事で扱います。

よくある質問

既存の紙の不良票にあるコードを、そのままMESに移してよいですか?

そのまま移すのは推奨しません。紙の不良票は、記入者が自由に補足を書ける前提で作られているため、コードが粗くても運用できています。システムに移すと補足がなくなり、コードだけが残ります。移行時には、過去1年分の不良票を実際に読み、「コードでは表現されていないが補足に頻出する情報」を洗い出してください。その情報こそが、3軸のうち不足している軸です。多くの場合、箇所の情報が補足に書かれています。

顧客ごとに要求される不良分類が違います。どう吸収しますか?

社内コードを正とし、顧客向け分類はマッピングテーブルで変換してください。顧客の分類を社内コードとして採用すると、顧客が増えるたびにコード体系が膨らみ、社内の横断分析ができなくなります。マッピングは多対一(複数の社内コードが1つの顧客分類に対応)になるのが普通で、逆方向の一対多が発生する場合は、社内コードの粒度が顧客要求より粗いというサインです。その粒度差だけをコード追加で埋めます。

コードの統廃合をどうしてもやりたい場合、方法はありますか?

既存コードの意味を変えるのではなく、新コードを作って旧コードを新規使用停止にする方法を取ります。そのうえで、分析用のグルーピングテーブルで旧コードと新コードを同じ分析グループに束ねます。これなら過去データは元のコードのまま保持され、集計時にはまとめて見られます。旧コードのレコードを新コードへ書き換える一括更新は、監査証跡の観点でも分析の再現性の観点でも避けてください。規制産業では、記録の遡及的な書き換え自体が指摘対象になります。