ISO 9001との比較
30.4.1. ISO 9001の概要
ISO 9001は、品質マネジメントシステム(QMS, Quality Management System)に関する国際標準です。国際標準化機構(ISO)が制定しており、組織が顧客要求事項および規制要求事項を満たす製品およびサービスを一貫して提供するための管理体系を定義しています。
ISO 9001は1987年の初版発行以降、数回の改訂を経ており、現行バージョンはISO 9001:2015です。製造業、サービス業、建設業、ITなどすべての産業に適用可能な汎用標準であることが最大の特徴です。世界的に最も広く普及した経営システム標準であり、170ヶ国以上で100万以上の組織が認証を保有しています。
ソフトウェア産業でもISO 9001認証を取得するケースがあります。特に公共入札や大企業の協力会社登録時に要求される場合が多くあります。しかし、ISO 9001はソフトウェアに特化した標準ではないため、コード品質や技術的実装を直接検証するメカニズムは含まれていません。
30.4.2. 核心原則
ISO 9001:2015は、7つの品質マネジメント原則に基づいています。
| 原則 | 説明 | ソフトウェアへの適用 |
|---|---|---|
| 顧客重視 | 顧客要求事項を理解し充足させ、顧客の期待を超える達成 | ユーザー要件分析、UX品質、パフォーマンス基準の充足 |
| リーダーシップ | 経営陣が品質の方向性を設定し資源を提供 | テクニカルリーダーシップ、品質目標設定、ツール/インフラ投資 |
| 人々の積極的参加 | すべてのレベルの人員が品質達成に参加 | コードレビュー文化、品質意識教育 |
| プロセスアプローチ | 活動をプロセスとして管理し一貫した結果を導出 | 開発プロセスの標準化、CI/CDパイプラインの構築 |
| 改善 | 継続的なパフォーマンス改善を追求 | 技術的負債管理、パフォーマンス最適化、リファクタリング |
| エビデンスに基づく意思決定 | データ分析に基づいた意思決定 | コードメトリクス、カバレッジ数値、パフォーマンス測定結果に基づく判断 |
| 関係性管理 | 利害関係者との関係を管理し持続的な成果を導出 | 協力会社/外注開発会社の品質管理、オープンソースライセンス管理 |
これらの原則はソフトウェア開発にも有意義に適用できます。しかし、ISO 9001はこれらの原則を「どのようなプロセスで管理するか」に焦点を当てており、「コードレベルでどのように実装するか」については規定していません。
30.4.3. ソフトウェア分野への適用
30.4.3.1. ISO 9001のソフトウェア分野要求事項
ISO 9001:2015の主要条項のうち、ソフトウェア開発との関連性が高い項目は以下の通りです。
| 条項 | タイトル | ソフトウェア分野への適用 |
|---|---|---|
| 7.1.6 | 組織の知識 | 開発標準、技術文書、アーキテクチャ文書の管理 |
| 8.1 | 運用の計画および管理 | 開発プロセスの定義、リリース管理手順 |
| 8.2 | 製品およびサービスの要求事項 | 要件仕様、変更管理 |
| 8.3 | 製品およびサービスの設計・開発 | ソフトウェア設計、レビュー、検証、妥当性確認 |
| 8.5 | 生産およびサービス提供 | ビルド、デプロイ、運用プロセス |
| 8.6 | 製品およびサービスのリリース | リリース承認、QA手順 |
| 8.7 | 不適合なアウトプットの管理 | 欠陥管理、バグトラッキング |
| 9.1 | モニタリング、測定、分析および評価 | 品質メトリクスの収集および分析 |
| 10.2 | 不適合および是正処置 | 障害対応、根本原因分析、再発防止 |
30.4.3.2. ソフトウェア適用時の限界
ISO 9001をソフトウェア分野に適用する際、以下のような限界が存在します。
コード品質の直接検証不可
ISO 9001は「設計・開発のアウトプットがインプット要求事項を満たしているか検証しなければならない」と要求しています。しかし「検証」の具体的な方法は定義していません。テストカバレッジが何パーセントであるべきか、コードフォーマッティングルールが何か、どのリントルールを適用すべきかは、組織が自ら決定しなければなりません。
汎用標準の限界
ISO 9001は製造業、サービス業、建設業などすべての産業に適用される汎用標準です。この汎用性は利点ですが、ソフトウェア固有の特性(継続的インテグレーション、自動化テスト、コードレビューなど)を反映できない限界があります。
プロセス中心 vs 成果物中心
ISO 9001は「正しいプロセスに従えば正しい結果が得られる」という哲学に基づいています。ソフトウェアではプロセスに従っていてもコード品質が保証されないことがあります。コードレビュープロセスが存在していても、レビューの深さと質が十分でないことがあり、テストプロセスが定義されていてもテストカバレッジが十分でないことがあります。
技術規格の不在
ISO 9001は特定の技術スタックやツールを要求しません。「適切なモニタリングおよび測定の資源を決定し提供しなければならない」と要求しますが、どのツール(ESLint、JaCoCo、Lighthouseなど)を使用すべきか、どの数値基準(カバレッジ80%、JSバンドル300KB以下など)を満たすべきかは規定していません。
30.4.4. TQSとの比較分析
以下の表は、ISO 9001とTQSを核心的な比較軸に基づいて整理したものです。
| 比較軸 | ISO 9001 | TQS |
|---|---|---|
| 認証目的 | 品質マネジメントシステムの構築および継続的改善 | コードレベルの技術品質検証 |
| 適用範囲 | すべての産業(汎用) | ソフトウェア開発(特化) |
| 検証レベル | プロセスレベル(「プロセスが定義されているか」) | コードレベル(「コードが基準を満たしているか」) |
| 品質基準 | 組織が自ら定義(具体的な数値なし) | 規格書で明示(カバレッジ80%、JSバンドル300KB以下など) |
| 検証方法 | 文書審査 + 現場審査(手動) | 自動化ツール + コードレビュー |
| 設計検証 | 「設計アウトプットがインプット要求事項を満たしているか」(抽象的) | 「Spring Bootの設定が標準に従っているか」(具体的) |
| テスト検証 | 「テストプロセスが定義されているか」 | 「JaCoCoラインカバレッジ80%以上か」 |
| コード品質 | 直接検証しない | Google Java Format、ESLint、Prettier適用有無を検証 |
| モニタリング | 「モニタリング資源を提供しなければならない」(抽象的) | 「Lighthouseパフォーマンス90点以上、Core Web Vitals充足」(具体的) |
| 認証費用 | 中コスト(数百万〜数千万ウォン) | 無料(自社内部認証) |
| 更新周期 | 3年(年1回サーベイランス審査) | メジャーバージョン単位(CI常時検証) |
| 認証機関 | 国際公認認証審査機関(CB) | ティエニピア技術標準委員会 |
30.4.4.1. 抽象性 vs 具体性
ISO 9001とTQSの最も顕著な差異は、要求事項の具体性です。
ISO 9001は「組織は製品およびサービスの適合性を保証するために必要なモニタリングおよび測定の資源を決定し提供しなければならない」と要求しています。どのツールで何を測定し、基準値がいくつかは組織が決定します。
TQSは「JaCoCoラインカバレッジ80%以上」「ブランチカバレッジ70%以上」「初期ロードJS 300KB以下(gzip)」「Lighthouseパフォーマンススコア90点以上」のように、具体的なツールと数値基準を明示しています。審査時にこの数値を自動化ツールで測定し、充足状況を客観的に判定します。
30.4.4.2. プロセス検証 vs 成果物検証
ISO 9001は「品質を管理するプロセスが正しく策定され運用されているか」を検証します。コードレビュープロセスが存在するか、テスト手順が文書化されているか、リリース承認プロセスが定義されているかを確認します。
TQSは「プロセスの成果物であるコード、設定、ビルド成果物が基準を満たしているか」を検証します。コードレビュープロセスの存在有無よりも、実際のコードがコンベンションに従っているかを確認します。テスト手順の文書化有無よりも、実際のテストカバレッジが基準を満たしているかを確認します。
30.4.5. 補完関係
ISO 9001とTQSは品質の異なる側面を扱うため、併用することで品質管理の完成度が高まります。
30.4.5.1. 補完構造
| 階層 | 担当認証 | 役割 | 質問 |
|---|---|---|---|
| 品質管理階層 | ISO 9001 | 品質マネジメントシステムの策定および運用 | 「品質をどのように管理しているか?」 |
| 品質検証階層 | TQS | 成果物(コード)の品質を直接検証 | 「成果物が品質基準を満たしているか?」 |
30.4.5.2. ISO 9001要求事項とTQSの連携
ISO 9001の主要要求事項がTQSでどのように具体化されるかを整理すると以下の通りです。
| ISO 9001要求事項 | ISO 9001レベル | TQSでの具体化 |
|---|---|---|
| 設計・開発の検証(8.3.4) | 「アウトプットがインプットを満たしているか検証」 | JUnit 5テスト、カバレッジ80%以上 |
| モニタリングおよび測定(9.1.1) | 「適切なモニタリング資源の提供」 | JaCoCo、Lighthouse、ESLint自動化検証 |
| 不適合アウトプットの管理(8.7) | 「不適合製品の識別および管理」 | CI/CDビルド失敗時のデプロイブロック |
| 是正処置(10.2) | 「不適合の原因除去」 | コードレビュー、リントルール違反の自動検知 |
| 継続的改善(10.3) | 「QMSの適合性、適切性、有効性の改善」 | テストカバレッジ推移、バンドルサイズ推移、パフォーマンススコア推移 |
| 文書化された情報(7.5) | 「必要な文書化された情報の維持」 | プロジェクト構造標準、APIドキュメント(SpringDoc)、設定ファイル標準 |
30.4.5.3. 組み合わせ適用シナリオ
ISO 9001とTQSを併用することが効果的なシナリオは以下の通りです。
- 公共入札参加企業: 公共機関の入札時にISO 9001認証が加点要素または必須条件である場合があります。ISO 9001で品質マネジメント体系を証明し、TQSで実際のコード品質を保証できます。
- 大企業の協力会社: 大企業が協力会社にISO 9001認証を要求する場合、ISO 9001とTQSを併用すれば、プロセスと成果物の両面で品質を保証できます。
- 品質文化の高度化組織: ISO 9001で品質管理基盤を構築した後、TQSでコードレベルの品質基準を導入し、品質文化を一段階引き上げることができます。
ISO 9001は「品質を管理するシステム」を検証し、TQSは「システムが作り出した成果物の品質」を検証します。2つの認証は品質管理のインプット(プロセス)とアウトプット(成果物)をそれぞれ担当する補完的な関係にあります。