Updates

新着情報

コラム

Automotive SPICE 4.0 トレーサビリティと一貫性に関する変更点(SYS/HWE):HWE導入によるプロセスのギャップ解消

Automotive SPICE 4.0 では、従来のソフトウェア中心の構成から一歩進み、ハードウェアエンジニアリング(HWE)という新たなプロセス領域が追加されました。今回は、トレーサビリティと一貫性の観点から、SYS(システムエンジニアリング)とHWEの関係性に焦点を当て、HWE導入がもたらすプロセス上のギャップ解消について説明します。 ◆Ver3.1までの課題Ver3.1までは、ハードウェア開発に関するプロセスが明示的に定義されておらず、多くの組織では以下のような課題が見られました。 ハードウェア要求が体系的に管理されていない 設計と要求のトレーサビリティが不十分 ソフトウェアと比較してプロセス成熟度が低く、属人化しやすいこのような状況では、システム全体の整合性を保つことが難しく、特に安全性や信頼性が求められる領域では大きなリスクとなっていました。 ◆HWEの登場とその意義Ver4.0で新設されたHWEプロセス領域は、ハードウェア開発を「要求定義 → 設計 → 実装 → 検証」という一連のプロセスとして明確に定義しています。これにより、以下のような効果が期待されます。 ハードウェア要求の明文化と管理 設計成果物とのトレーサビリティ確保 SYSとの整合性チェックの仕組み化 ソフトウェア開発とのプロセス統一による連携強化特に、SYS-HWE間のトレーサビリティが明確になることで、システム全体の一貫性が担保されやすくなります。 ◆トレーサビリティと一貫性の実現HWE導入により、以下のようなトレーサビリティの流れが構築されました。  SYS.2(システム要求分析)で定義されたシステム要求が、 HWE.1(ハードウェア要求分析)に引き継がれ、 HWE.2(ハードウェア設計)で設計に反映され、 HWE.3(ハードウェア設計に対する検証)で設計が検証され、 HWE.4(ハードウェア要求に対する検証)で要求が検証されるこの一連の流れにおいて、各プロセス間で要求のトレーサビリティのリンクを明示的に管理することで、変更が発生した際にも影響範囲を迅速に把握でき、設計ミスや手戻りのリスクを低減できます。また、SYSとHWEの間で一貫性チェックを行うことで、要求の解釈違いや設計のズレを早期に発見することが可能になります。 ◆まとめVer4.0におけるHWEの導入は、これまで曖昧だったハードウェア開発プロセスに明確な枠組みを与え、SYSとの連携を強化する大きな一歩です。特にトレーサビリティと一貫性の観点から見ると、システム全体の品質向上とリスク低減に直結する重要な進化と言えるでしょう。今後は、HWEプロセスの実装と定着を通じて、ソフトウェアとハードウェアが真に連携した開発体制の構築が求められることになると思います。佐藤崇

コラム

システムの論理構成と物理構成について

はじめにAutomotive SPICEのプロセスである、SYS.3 システムアーキテクチャ設計プロセスでは、システムの機能要求と非機能要求に関して、静的/動的の両側面での設計が期待されています。 しかしながら、システムの構成要素であるセンサ・アクチュエータ・制御回路・マイコンなどに、システム要求をどのように割り当て、実装することが最適なのかを分析・検討することは難しいものです。単に、Automotive SPICEに期待されているように、静的な側面と動的な側面で設計結果を図案化しても、適切な設計をした根拠として少し心もとないですし、「流用元のシステムがこうなっているから」では説得力にも欠けます。今回は、システムエンジニアリングの国際標準である「ISO/IEC 26702 IEEE Std 1220-2005, Systems engineering – Application and management of the systems engineering process」を参考に、システム要求からシステムを設計する流れを解説していきます。 機能アーキテクチャと物理アーキテクチャシステム要求を実現するシステム構造は1つではありません。複数の実現案がある中から最適なシステム構造を決定していく必要があります。そのため、まずシステム要件を満たすために、システムが保有すべき、論理的な機能を定義し、それらの関係を整理していく必要があります。そして、これらの機能を、その後定義するシステムの構成要素(センサ・アクチュエータ・制御回路・マイコン)に割り当てていきます。システム構成要素を定義したものが物理アーキテクチャになります。システム設計の全体の流れを簡単に示すと下図のようになります。 機能分析機能アーキテクチャは、システム要件を満たすために、実行の順序、制御フローまたはデータフローを定義した機能・サブ機能および内部/外部インターフェースを整理したもので、システムの論理構成を示したものです。また機能アーキテクチャでは、システム機能をサブ機能に分解 (細分化) した結果生じる、サブ機能の機能的な配置と順序を検討する必要があります。この際、この後物理アーキテクチャを考慮せずに必要な機能配置を分析することがポイントになります。システム要件をインプットに、機能アーキテクチャを設計するためのプロセスは以下のようになります。  ここでの「振る舞いの分析」や「機能間インタフェース」の定義が、Automotive SPICEにおける静的な側面の仕様化の一部であり、「時系列の流れ」や「データフルーと制御フロー」の定義が、動的な側面の仕様化の一部となります。例えば、扇風機の機能アーキテクチャを設計した結果の一部である、論理構成のブロック図は以下のようになります。 ※具体的なやり方を知りたい方を知りたい方やトレーニングを受講されたい方は、是非お問い合わせください。 設計物理アーキテクチャは、機能アーキテクチャとシステム要件を満たすために、製品の設計結果提供する設計要素の配置を整理したものです。設計結果を定義し、検証された機能アーキテクチャの要件を満たす、システムの構成要素を特定します。機能アーキテクチャを元に、システム構成要素の配置、それらの分解、インターフェイス (内部および外部)、および設計制約を提供する物理(設計)アーキテクチャを設計していきます。この際、必要に応じて、複数の実現案を評価し、リスクを特定・評価・定量化し、適切なリスク軽減アプローチを選択した上で、コスト、スケジュール、およびパフォーマンスへの影響を分析することがポイントとなります。システム要件と機能アーキテクチャをインプットに、物理アーキテクチャを設計するためのプロセスは以下のようになります。    ここでの「機能をグルーピングし設計要素に割り当て」や「物理インタフェースの定義」が、Automotive SPICEにおける静的な側面の仕様化の一部であり、「設計特性や性能特性の定義」などが、動的な側面の仕様化の一部となります。例えば、扇風機の物理アーキテクチャを設計した結果の一部である、機能ブロックの設計要素への割り当て結果は以下のようになります。 ※具体的なやり方を知りたい方を知りたい方やトレーニングを受講されたい方は、是非お問い合わせください。 さいごにいかがでしょうか。単に、「システム要件をインプットに、静的設計と動的設計をして、システムアーキテクチャを設計しろ」と言われても、具体的に何すべきなのかはわかりにくと思います。しかしながら、システム要件を元に、必要なシステム機能を定義して、適切なシステム構成要素を定義する流れを想像してみれば、システムアーキテクチャ設計が少しイメージできるかと思います。SYS.3 システムアーキテクチャ設計プロセスを実装する際に、参考にしていただければ幸いです。 内山哲三

コラム

Automotive SPICEの活動を効率良く進めるために

弊社では、これまで Automotive SPICE に関する取り組みを数多く支援してきました。残念なことに、組織的にプロセス改善に取り組めている組織は少なく、大半がプロジェクト個別の活動となってしまい、組織として多大な費用がかかってしまっています。今回は、このような状況から抜け出し、効果的な改善活動を実施するためのヒントをご提供いたします。 何故、プロジェクト個別の活動になってしまうのか?まずは、この理由について考察してみます。その最大の理由は、車両メーカーがプロジェクト要件として Automotive SPICE を要求していることだと考えています。具体的には、次の2点がその原因だと分析しています: Automotive SPICE には、プロセス改善に必要なプロセスが取り上げられていない VDAスコープに、プロセス改善に必要なプロセスが入っていない  ここで引用した ISO 15504 は、Automotive SPICE のベースモデルであり、ソフトウェア開発プロセスの評価と改善のために必要なプラクティスを定義した国際規格です。そもそも SPICE とは Software Process Improvement and Capability dEtermination の略であり、ISO15504 の原案作成をしていたプロジェクトに付けられた名前です。 一方で車両メーカーは、特定部品のサプライヤーを選定するためにAutomotive SPICE を使用しています。そのため、車両メーカーとしては組織的なプロセス改善より、むしろ発注を予定している(1つの)プロジェクトのプロセス能力を重要視しているのです。これは、Automotive SPICEに定義されているプロセスや、車輌メーカーがアセスメント対象のプロセスとして採用しているVDAスコープにも現れています。上図に示すように、組織的な改善活動を実施するために参考になる、PIM.1(プロセス確立)、PIM.2(プロセスアセスメント)、RIN.1(人的資源管理)、RIN.2(トレーニング)、RIN.3(知識管理)、RIN.4(環境整備)などは Automotive SPICE には定義されておりません。唯一、PIM.3 が Automotive SPICE に含まれていますが、VDA スコープには取り上げられていません。 従って、車両メーカーの指定するプロセス(一般的にはVDAスコープ)だけを対象にしても、組織的にプロセス能力を向上させることは困難です。プロセス能力を継続的に向上させていくためには、Automotive SPICE には定義されていない他のプロセスの導入を検討する必要があります。例えば、上図で示した ISO15504 や 最近発行された Organization SPICE (概要は、こちらを参考にしてください)などを取り入れると良いでしょう。これまで筆者が見てきた中では、1社だけ PIM や RIN を参考に組織プロセスを定義している組織がありました。さすがに、この組織では改善活動が組織的に運営されていました。 この結果、何が起こっているか?Automotive SPICE 対応をしているプロジェクトでは典型的に次のような課題が見られます: プロジェクトごとに、Automotive SPICE の対応が実施されており、組織として無駄な工数が発生しているプロセス改善活動とは)組織能力を高めるために組織としてのプロセスを定義し改善する活動である プロジェクト定例会議の中でプロセス活動の議論がされ、プロジェクト工数が圧迫されているプロジェクト定例会議では)プロジェクト計画に対する状況と課題の確認を実施する場である 本来どうあるべきか?本来、組織としてプロセス改善活動を運営していれば、新たなプロジェクトが発足しても、Automotive SPICE 要求への対応を新たに実施する必要はないはずです。では、そのような状況を作り上げるには、どのようにすればよいでしょうか?私たちは、これまでの経験から次のことが重要だと考えています。  プロセス改善活動のアプローチを明確にする プロセス改善活動の目的を明確にし動機づけを行う プロセス改善活動の役割と責任を明確にする プロセス改善活動のアプローチに関するヒント改善活動は、米国のカーネギーメロン大学ソフトウェア工学研究所(SEI)が開発した組織的改善活動モデルであるIDEAL(Initiating Diagnosing Establishing Acting Learning)を参考にすると良いでしょう。このモデルでは5つの活動フェーズが定義されています。このモデルは、いわゆるPDCA と同様のモデルですが、改善活動には活動開始時の行動が重要という考え方から、立上げフェーズI(Initiaging)が加えられています。改善活動は、基盤を形成することが重要であり、この段階で組織のトップが改善活動に対する態度を決めることが重要であるとされています。  もう一つ、プロセス改善において重要な活動を説明いたします。IDEALモデルでは、行動・学習フェーズの活動となります。 1つ目は、プロセスの試行と評価です改善施策を本運用する前に、試行するプロジェクトを選定して、試行することそして改善の効果が当初の目標と比べてどの程度になるかを評価することが重要となります 2つ目は、プロセストレーニングの提供です改善施策が出来上がったら、改善プロセスの内容や新しい活動の目的をメンバーに周知する必要がありますトレーニングプログラムを通してプロセスの目的や意図を説明することがプロセスの定着にも寄与することになります 最後に、プロセス展開計画の策定と、実装状況の評価です「改善プロセスが完成したから、あとはプロジェクトが使うはずだ」と思っていても、なかなかうまくいきませんプロセス策定は、プロセスを使ってもらうための計画と評価まで実施して終了となります特に車両メーカーの要求に応えるために活動を実施していると、Automotive SPICE の要求を満たすためにプロセスを定義することが最優先となり、プロセスの効果測定やトレーニングの実施まで手が回らないことが多いようです。学習フェーズにあるように改善の効果を評価して、次の改善活動サイクルにつなげていくことが、継続的な活動につながっていくことになります。 プロセス改善活動の目的を明確にし動機づけに関するヒント次に、立上げフェーズの主題である改善活動の目的と動機づけに関するヒントを紹介します。改善活動では、組織のトップの行動が活動の成否を決めると言っても過言ではありません。ここにトップが実施すべき行動概要を記載しますので、参考にしてください。 トップがやる気になって、率先する 方針と方向を提示する プロセス改善の諸原則をコミットする 全参加者にプロセス改善を周知する プロセス改善の責任者を選定する 活動に必要な資源(人やインフラ)に関してコミットする 配下全員の意識改革の風潮を絶やさない プロセス改善活動の役割と責任に関するヒント最後に、改善活動をうまく運営していくためのヒントを紹介します。下図にあるように、各グループの責務を明確にし、トップ主導のもと全員が協力して活動を遂行していくことが効率の良い改善活動への第一歩となるでしょう。   いかがでしたでしょうか?本コラムの最後に、弊社が実践してきた中で得た教訓をいくつか紹介しますので、参考にしてください。 従来の開発プロセスを尊重する マネージャが率先して取り組む プロセス改善モデルの心を理解する 目的を理解する 誰がやっても同じようにできるようにする プロセス間、能力レベル間のつながりを理解する 全プロジェクトと EPG が協力し合う 継続できる改善施策を捻出する ツールを最大限に活用する ただし、担当者にストレスを感じさせないツールとする 品質はただでは得られない 継続的なプロセス改善への投資を必要とするが、他の選択肢より安く済む 日吉昭彦

コラム

Automotive SPICE 4.0 SYS.4の本質:つなげば終わりではない、”システム設計の整合性”を見極める

Automotive SPICE 4.0 に関するコラム、今回は SYS.4:システム統合および統合検証プロセスをテーマにお届けします。 はじめにAutomotive SPICE 4.0におけるSYS.4(システム統合および統合検証)とSYS.5(システム検証)は、システム開発の最終段階に位置づけられます。SYS.4では、SYS.3(システムアーキテクチャ設計)で設計したシステムエレメントを統合し、エレメント間のインタフェースや相互の振る舞いが設計通りに機能するかどうかを検証します。その後、SYS.5では、統合後のシステムが要求通りに動作するかどうかを確認することが求められます。しかし現場では、「システム要求に基づくテストは実施しているものの、設計されたシステム構造や振る舞いが正しく再現されているかを確認する視点が不足している」といった課題がしばしば見られます。表面的には動作しているように見えても、設計で意図されたインタフェース、動作シナリオが正しく実現されていないケースも少なくありません。たとえば、仕様通りに信号線が接続されていない、設計と異なる条件で処理が動いているといった状況です。 統合して明らかになる「設計と現実のギャップ」あるプロジェクトで、複数のECUやアクチュエータ、センサを含むシステムの統合工程に入りました。各チームは単体での試験を終えており、「統合しても問題なく動くだろう」と楽観視されていました。そして統合後すぐに、SYS.5で求められるシステム要求に対する検証が始まりました。ところが、ECUの起動タイミングが数百ミリ秒ずれただけで通信が確立せず、他のユニットが初期化エラーを起こすなど、思わぬ問題が発生しました。個別には正常だった電源ONシーケンスでも、統合環境では起動が不安定になる例もありました。さらに、擬似環境では正常に動いていたセンサとECUの接続も、実機では信号の立ち上がりや微小なノイズの影響で、ECUが信号を誤認識する事象が確認されました。仕様上問題ないはずの電圧レベルでも、実際にはセンサが“未接続”と誤判定するケースもありました。このように、統合して初めて明らかになる設計と現実のギャップは少なくありません。 「段階的統合」で見えてくる、システムとしての整合性SYS.4(システム統合および統合検証)では、「段階的な統合・検証」がキーワードです。具体的には、 システムエレメント間のインタフェースを確認しながらサブシステムを構築 サブシステム間を統合し、最終的なシステム全体を完成・検証というステップを踏み、システム全体の整合性を評価していきます。この過程では、電磁インタフェース、光インタフェース、コネクタや圧入、沿面距離・空間距離といった物理的な接続要素も重要です。なお、これらの項目には従来ハードウェアやメカ設計の領域と捉えられがちなものも含みますが、システムエレメント間のインタフェースの整合性として、システム統合の中で評価すべき重要な要素とされています。これらは仮想環境やシミュレーションでは評価が難しく、実際の統合(実統合)を行わなければ検証できません。製品が完成し、動作しているということは、どこかの工程で何らかの検証が行われているはずです。ただし、システムの視点をもつ担当者(いわゆる“システムグループ”)が不在であることもあり、Automotive SPICEで求められるような体系的かつ論理的な整合性の証明が行われていないケースも見受けられます。だからこそ、製品開発に関わる関係者がそれぞれどのような活動を行っているのかを全体として整理し、不足があれば補完していくような活動が重要です。このように、部分的な検証や整理されていない活動の積み重ねだけでは、システム全体の整合性を十分に評価することは困難です。すなわち、「統合検証」とは単に「最後にすべてを接続して動作確認する工程」ではなく、段階的な統合と検証を通じて、最終的に「アーキテクチャ設計で意図した接続関係やモード遷移が成立しているか」を評価する必要があります。たとえば次のような観点です: 運用モードの遷移(スタートアップ、スリープ、シャットダウンなど)が意図通りか 電源、CAN/LIN、アナログ信号など、物理インタフェースの整合性とタイミング 通信レイテンシやセンサ遅延による制御応答の影響これらはハードウェアやソフトウェア単独での試験では見えにくく、統合環境でこそ明らかになります。状態遷移ではなく、「モード挙動」として捉えるソフトウェアでは状態遷移表によって振る舞いを定義・検証することがありますが、SYS.4の観点では、「システムとしてのモード」とその全体挙動に注目します。たとえば以下のようなケース: システム起動時、すべてのシステムエレメントがタイミングよく初期化され、安定動作に入れるか? スリープ復帰後、センサや通信系が適切に再起動し、制御がスムーズに再開できるか? 異常発生後の復旧プロセスで、他のシステムエレメントに悪影響を及ぼさず、安全に切り替えられるか?これらは「状態遷移」だけでは捉えきれない、時間軸上の振る舞いや依存関係の問題です。こうした観点を踏まえ、設計意図をどのように検証へつなげていくかが問われます。設計意図を検証へつなぐためにこうしたSYS.4での検証を成立させるためには、前段階であるSYS.3において、システム全体の相互作用や外部環境要因による影響の検証に関する考慮がなされていることが前提となります。SYS.3でそれらが十分に記述されていない場合、SYS.4での整合性検証は困難になります。とはいえ、実際の車両開発の現場では、初回の開発フェーズからすべての外部環境要因による影響や振る舞いを設計に盛り込むのは困難なケースも多くあります。そうした場合は、SYS.5で得られた知見や不具合を、次の開発サイクルでのSYS.3およびSYS.4に反映させるという、継続的なV字開発の積み重ねが重要になります。また、SYS.3のシステム設計者とSYS.4のシステム検証者が異なる場合には、設計意図や想定されるシステム間の相互作用、起動シーケンスや電源設計上の前提などが十分に文書化・伝達されていなければ、SYS.4で本コラムで述べたような検証は難しくなります。設計と検証の橋渡しを行う情報伝達のプロセスも、品質保証の鍵となります。 まとめSYS.4の統合検証では、まず物理的な接続確認という基本を押さえたうえで、設計の意図や統合の前提が、システム全体として成立しているかを検証します。ここでの検証が不十分だと、最終段階や客先で重大な不具合が顕在化するリスクがあります。設計と検証は一方通行ではなく、相互に補完し合い循環的に成熟させるべき関係です。SYS.4を通じて、設計の妥当性を裏付け、次の開発サイクルへと知見をつなげていくことが、システム設計の真の“整合性”を育む鍵となるでしょう。あわせて、製品開発に関わる関係者がどのような活動を行っているのかを全体として整理し、不足があれば補っていくことも欠かせません。活動の連携や重複、見落としを明らかにすることで、統合検証の質はさらに高まります。今一度、自社のSYS.4プロセスを見直し、「設計者の意図や前提条件が、検証シナリオや試験条件にきちんと反映されているか」「想定されたモード挙動や副作用が試験されているか」といった観点から、検証の質を点検してみてはいかがでしょうか。 さいごに今回のコラムはいかがでしたでしょうか?本コラムの内容が、自社の開発プロセスの見直しや改善のきっかけになれば幸いです。現場で似たような悩みに直面している方にとっても、少しでもヒントになれば嬉しい限りです。ご相談いただければ、これまでの経験を活かしてお力になれることもあるかもしれません。どうぞお気軽にお問い合わせください。(安部宏典)

コラム

Organization SPICE 成熟度レベル4、5の評価で対象にするプロセスについて

先日、Organization SPICE 概説資料を公開しました。この資料は、Organization SPICE PAM の記載事項をなるべく忠実に表現する方針で作成してあります。そのため、少し補足説明を入れないと理解しにくい部分が残ってしまっています。コラムでは、補足が必要だと思われる次の2点について解説いたします:  成熟度レベルアセスメントに必要なインスタンス(プロジェクト)の選び方 成熟度レベル4、5を評価する際のプロセス選定の考え方 前回のコラムでは、インスタンスの選び方をご紹介しましたので、今回は成熟度レベル4、5を評価する際のプロセス選定の考え方についてご説明いたします。PAM の記載事項を要約すると、次のようになります: 成熟度レベル4、5インスタンスの選定 高成熟度(レベル4、5)については、選択されたプロセスセットがそれぞれ能力レベル4および5を達成することが期待される。このセットには、必ずしもすべてのプロセスが含まれる必要ははない。プロセスによっては、能力レベル3を超える根拠やビジネス上のメリットが全くない場合があるからである。(例えば、統計的な手法が適用できないほどインスタンス数が少ないなど) とはいえ、能力レベル4/5に選択された一連のプロセスについては、それらがどのように業務に貢献しているのか、きちんとした分析が必要である。その分析に基づき、能力レベル4/5のプロセスが、大半のプロジェクト(成熟度レベル4の場合)または企業/組織/部門(成熟度レベル5の場合)において、かなりの量の業務成果に貢献していることを明確にする必要がある。 このプロセスセットには、少なくとも1つの基本プロセスが含まれている必要があるが、通常は相互に関連するプロセスグループが存在している。さらにこのプロセスセットには、成熟度レベル2以上の拡張プロセスを含むことができる。 これは、どういうことを言っているのでしょうか?成熟度レベル4以上の活動を経験された方には理解できると思いますが、補足説明がないとわかりにくい内容だと思います。ここからは、これらの背景について説明していきます。 なぜ能力レベル4、5を達成する必要のあるプロセスは限定的(このセットには、必ずしもすべてのプロセスが含まれる必要はない)で良いのか?レベル4、5は、プロセスが事業へ貢献することに焦点を当てているからです。つまり、事業目標を達成するためには、どのプロセスを統計的に制御すると効果があるかを分析する必要があるのです。言い換えれば、すべてのプロセスを統計的に制御しても意味がありません。例えば、品質の向上が事業遂行上の最優先課題とした場合に、MAN.3(プロジェクト管理プロセス)やSUP.8(構成管理プロセス)を統計的に制御することで品質向上に大きく寄与するでしょうか?これらのプロセスを選択するよりも、むしろ過去の不具合傾向を見て、例えば詳細設計プロセスやレビュープロセスに焦点を当てることの方が品質向上に貢献しそうだと思いませんか?つまり、プロセスによっては、能力レベル3を超える根拠(統計的にプロセスを制御する)やビジネス上のメリットが全くない場合があるということなのです。    次に、「能力レベル4および5を達成することが期待される」とは具体的にどのような状態なのでしょうか?レベル4と5では、期待値が多少異なるので2つに分けて説明します: レベル4が期待するプロセス制御レベル4においては、組織内のプロジェクトから収集した標準プロセスの実績データを活用して、プロジェクトを成功に導くことが期待されています。プロセスは、プロジェクトの実績向上に寄与することに焦点が当てられていますが、プロジェクト実績の向上は結果的に組織の事業実績に貢献することになります。 まずは、事業目標を達成するために各プロジェクトはプロジェクト目標を設定します。次に、プロジェクト目標を達成するためにキーとなるプロセスを選択し、このプロセスを統計的に制御(そのイメージは後述します)していきます。つまり、プロセス実績データを統計的に分析しながら、都度プロジェクト実績を予測して、早め早めに手を打つことでプロジェクト目標の達成に導いていくための手法なのです。 データの扱い方の観点から見ると、レベル3のプロセス状態におけるプロジェクト管理では、その時点までに収集したデータを使って状況を把握していると言えます。言い換えると、自動車のバックミラーに映し出された形跡(プロジェクトが実施してきた結果)を見てプロジェクトを管理していることになります。一方、レベル4では、組織内の過去プロジェクトが使用した標準プロセスの実績データの集合から予測モデルを作成して、都度プロジェクト実績をモデル式に当てはめ、プロジェクト終了時点の実績を予測しながらプロジェクトを制御しているのです。こちらは、航空機がランディングする際に自動操縦で滑走路(プロジェクトのゴール)にアプローチするような例えになります。  レベル5が期待するプロセス制御レベル5においては、組織内のプロジェクトから収集した標準プロセスの実績データを活用して、組織のプロセス革新を実現することが期待されています。プロセスは、組織の事業実績の向上に直接寄与することに焦点が当てられます。 レベル4の活動においてプロセスを統計的に制御することが可能になったプロセス実績データを組織改革に活用することがプロセス成熟度の考え方の最終ゴールとなります。ここでは、新しい技術を現在使用している標準プロセスに組み込んだ場合に、プロセス実績がどのように変化するかを予測モデルから評価します。 このようなことができるようになると、刻々と変化するビジネス環境に合わせてダイナミックにプロセスを改善・改革することが可能になり、競合他社に対して優位性を持つことができるわけです。 ここでの説明のとおり、成熟度レベル4の場合は活動の焦点がプロジェクトに向けられています。一方、成熟度レベル5の場合は企業/組織/部門の業績に焦点を当てていることになります。  最後に、「統計的な手法が適用できないほどインスタンス数が少ない」ということに関して補足しておきますこれは、実際にプロセスを統計的に制御する活動をしてみるとわかるのですが、プロセス実績データ(インスタンス)を数多く、かつ頻繁に入手・評価できないと、実際の制御には活用できないということなのです。 例えば、プロジェクトの生産性のような指標は、プロジェクトが終了しないと収集できません。また、このようなデータはプロジェクト1つで1点のデータとしてしか入手できません。プロセスを統計的に制御するためには、プロセス実績の中心値やバラツキを見ながらプロセス実績を評価することになるので、インスタンスが少ないとうまく活用できません。データの母集団を作成するためには、膨大なプロジェクトが必要になりますし、プロジェクトが終わってしまっては、そのプロジェクトの将来を予測できません。 わかりやすい例として、レビュープロセスの実績データがあります。レビューはプロジェクトの中でもかなりの回数実施されるでしょう。母集団の作成も容易にできますし、レビュー終了時点で実績値を予測モデルに当てはめれば、直近のレビュー結果がプロジェクトの将来に与える影響も判断することができます。  今回のコラムはいかがだったでしょうか?PAMには簡単に書かれていますが、なかなか奥の深いトピックだと思います。私たちは、実際の開発現場で成熟度レベル4、5の実装に長らく携わってきました。この活動では、多くの後戻りと苦悩がありました。一番つらかったのはレベル4、5の目指すところを理解できた時点で、それまで構築してきたレベル3プロセスの定義や実装を振り出しに戻す必要が出てきてしまったことです。それまでは、データの扱いや統計的にプロセスを制御するために適切なプロセス構造や活動になっていなかったのです。この時、プロセス改善モデルとの付き合い方として、その時点で目標とするレベルだけを意識するのではなく、一度高いレベルを学習した上で、上位レベルから下位レベルを俯瞰して活動する必要があることを学びました。 同様の悩みをお持ちの方も多いと思いますので、その際はぜひ弊社までお声がけいただければと思います。日吉昭彦

コラム

成熟度レベルアセスメントに必要なインスタンス(プロジェクト)の選び方

先日、Organization SPICE 概説資料を公開しました。この資料は、Organization SPICE PAM の記載事項をなるべく忠実に表現する方針で作成しております。そのため、少し補足説明を入れないと理解しにくい部分が残ってしまっています。コラムでは、補足が必要だと思われる次の2点について解説いたします:  成熟度レベルアセスメントに必要なインスタンス(プロジェクト)の選び方 成熟度レベル4、5を評価する際のプロセス選定の考え方 今回は、成熟度レベルアセスメントをする際に必要となるプロセスインスタンス選び方についてご説明いたします。PAMの記載事項を要約すると、次のようになります: プロセスインスタンスの選定 可能であれば、少なくとも4つのフォーカスプロジェクトを選択する必要がある。選択されたすべてのプロセスは、フォーカス内で分析する必要がある。十分なカバレッジを達成するために、さらにプロセスインスタンスを追加することもできる。 フォーカスプロジェクトと選択されたプロセスインスタンス全体は、いずれも組織ユニットのプロセスインスタンスを適切に代表するものでなければならない。 プロセスインスタンスの選択基準は、定義されたアセスメントプロセスに従う必要がある。  具体的には、どのように選定すればよいのでしょうか?プロセスインスタンスの考え方や組織のプロセス成熟度に関する補足説明がないとわかりにくい内容だと思います。ここからは、これらの背景について説明していきます。 プロセスインスタンスとは何を指しているのか?プロセスインスタンスとは、「組織ユニットの中で組織標準プロセスを使用して活動した実例を示すもの」と解釈するとのが良いと思います。基本的には、1つのプロジェクトが1つのインスタンスとなります。つまり、プロジェクトが組織標準プロセスを履行した結果(足跡)ということです。ただし、プロセス改善プロセス(PIM.3)やスキル開発(RIN.2)など、プロジェクト単位ではなく組織として活動するプロセスは、プロジェクト単位とはならないケースも出てきます。 なぜ、少なくとも4つのフォーカスプロジェクト(プロセスインスタンス)が必要となるのか?成熟度レベルアセスメントは、Automotive SPICE が通常1つのプロジェクトを評価対象とするのに対し、組織のプロセス成熟度を評価対象とするものです。従って、組織ユニット内の限定的な(例えば1つの)プロセスインスタンスを評価しても、組織のプロセス成熟度を公平に表すことはできません。1つだけ良くできた(あるいはアセスメントのためだけに準備された)プロセスインスタンスが組織ユニット全体を表しているわけではないからです。 フォーカスプロジェクトは、どのような基準で選べば良いか?フォーカスプロジェクトは、PAM の記述にあるように組織ユニットのプロセスインスタンスを適切に代表するものでなければなりません。適切なインスタンスを選択をするためには、プロセスの履行にバラツキが出る要因を考慮しておくと良いでしょう: 製品種別:開発する製品特性 開発フェーズ:実施する作業工程、要求される期間、品質など 組織体制:部門/課/グループの特徴 プロジェクト規模:開発の大きさや、携わる人数 ロケーション:仕事の実施される場所(国の習慣や、地域による人の風習など) 顧客:開発要求元会社の文化ここに取り上げた例は、プロセス定義内容は同じにもかかわらず、作業上の違いが生まれてしまう可能性のある要因となるものです。成熟度レベルアセスメントの結果は、組織のベンチマークにも使われます。プロセスインスタンスの選定により評価結果が異なってしまうようでは、公平なベンチマークはできません。従って、成熟度レベルアセスメントにおいては、上記のような要因を考慮して、組織ユニットを代表するプロセスインスタンスを選定することが重要になってくるのです。選択したプロセスアセスメントモデルに、プロセスインスタンスの選定基準が定義されていれば、当然その基準を使用して選択する必要があります。アセスメントモデルに明確な定義がない場合は、選定した根拠を文書化しておくと良いでしょう。日吉昭彦

コラム

システム/ソフトウェア開発に品質保証活動は必要なのか?

はじめにAutomotive SPICEのSUP.1やCMMIのPPQAでは、システム開発/ソフトウェア開発の品質保証活動に対する要求事項をまとめています。しかしながら、そもそもなぜシステム開発/ソフトウェア開発に品質保証活動が必要なのかを考えたことがありますか?今回は、SUP.1やPPQAの元となっている規格や書籍を参考に、「品質保証活動の必要性」について考えていきます。  品質保証の規格MIL規格(Military Standard)最初に品質保証が規格として体系化されたのは、MIL-STD-109で、1960年代後半に初版が制定されました。この中で「品質保証(Quality Assurance)」を以下のように定義しています。A planned and systematics pattern of all actions necessary to provide adequate confidence that management and technical planning and controls are adequate to: Established correct technical requirements for design and manufacturing. Create products and services that confirm to the established technical requirements.管理および技術計画と制御が次の事項に適切であるという十分な確信を与えるために必要なすべてのアクションの計画的かつ体系的なパターン。 設計および製造に関する正しい技術要件を確立する。 確立された技術要件に準拠する製品およびサービスを作成する。つまり「適切に正しい技術要件を定義して、適切にそれに準じた製品やサービスを作っている確信を得るための活動」が品質保証であるとしています。さらにその技術要件の重要な要素である品質要件についても以下のように定義しています。The technical requirements relating to the quality of the product (supply or service) and contract clauses prescribing quality standards, inspection, and other quality controls incumbent on the contractor, to assure that the product or service confirms to the contractual requirements.製品 (供給またはサービス) の品質に関する技術要件、および契約者に課せられた品質基準、検査、およびその他の品質管理を規定する契約条項で、製品またはサービスが契約要件に準拠していることを保証する。契約者(≒供給者)が、要件通りのモノを作ったことを保証するための契約事項(≒約束事)を品質要件と定めています。言い換えると、要件通りにモノを作ったことを対外的に保証する行為が品質保証活動だと言えるでしょう。ISO規格(国際標準規格)品質に関する国際標準は、皆さんもご存知のISO 9000シリーズです。1980年代に制定されましたが、その中のISO 9003が、特に「最終検査および試験における品質保証モデル」に焦点を当てた規格です。ISO 9003は、製品の最終検査と試験を通じて品質を保証するためのガイドラインを提供していました。ISO 9003は、長期間にわたって製造、設計、その他の使用方法が確立されている製品に対して、最終検査のみで品質を保証するための規格でしたが、2000年の改訂により、ISO 9001に統合され、より柔軟で包括的な品質マネジメントシステムの規格となりました。IEEE規格(電気・電子工学分野における国際標準規格)電気・電子工学分野における国際的な標準を策定するための組織であるIEEE(Institute of Electrical and Electronics Engineers)も、前述のMIL-STDをベースに1970年代後半に品質保証の国際標準を制定しました。IEEE Std 730IEEE Standard for Software Quality Assurance Processesがその規格であり、今もなお改版を続けています。この中で、Automotive SPICEやCMMI以上に詳細説明があるので、この規格を参考に必要性を整理していきます。この国際標準では、SQAプロセスの目的と以下のように定義しています。 「ソフトウェア開発プロジェクトが SQA プロセスを使用して、ソフトウェア製品が確立された要件に準拠していることを正当に証明するための根拠となる証拠を作成および収集できるようにすること」 やはり、品質保証を要件通りにモノを作ったことを対外的に保証する行為と位置付けています。  QAが準拠保証しなくてはならない要件とは Automotive SPICEのSUP.1でも定義されているように、成果物とプロセスの品質保証をする必要があるため、QAが遵守保証しなくてはならない要件は、プロダクト要件とプロセス要件になります。IEEE std 730では、契約事項である利害関係者要件から導出されたプロダクト要件とプロセス要件に対し、図にあるような適合関係の推移性に基づいて、1つ前の情報と比較し適合していることを確認することで、プロジェクト全体を通じて、「要件通りにモノを作ったことを保証する」こととしています。 契約事項と導出されたプロセス要件の適合を確認する プロセス要件と導出された計画やプロセス、標準や手順の適合を確認する 計画やプロセス、標準や手順と実際の活動結果の適合を確認するこのように、1つ前の情報との適合を確認することが、品質保証活動の基本的な考え方となります。  プロジェクト内のレビューやチェックだけでは品質保証は十分なのか?契約事項に基づいた「要件通りにモノを作ったことを対外的に保証する」必要性は、開発に携わった人であれば理解できることかと思います。それでは、その対外的な保証はプロジェクト内の活動だけで十分であると考えることはできないのでしょうか?先のコラムAutomotive SPICE SUP.1 本当に品質は良くなるの?でも引用した「プロセス成熟度の改善」(Watts S. Humphrey著日本語訳:日科技連出版社発行)には、客観的な品質保証の必要性を以下のように説明しています。監査者に対し客観的になることは、誰にとっても難しい。一般に、我々はかなり注意深く仕事をやっており、そうでないように言われると不愉快に感ずる。しかし、「外側から」のレビューを行うのは、釣り合いのとれた見方が必要だからである。たとえば、あなたがこれからパラシュートを包み終えて跳ぼうとしているとする。有能な検査者があなたの1つ1つの動作を監視して本当に正しく行ったということを保証してくれるならば、あなたの幸せになれる勝算は大きくなる。品質が決定的に重要な場合は、なんらかの独立したチェックが必要である。それはその人たちが信頼できないからではなくて、その人たちが人間だからである。ソフトウェアにおける問題は、チェックが必要かどうかではなく、誰がどうやるかである。小規後な組織では、しばしば管理者自身が作業を直接に監視できるので、SQAの活動は必要がない。部下の数が多くなるにつれて管理者は他の業務に巻き込まれ、次第に日常の技術的作業ができなくなってしまう。このような時には、管理者は次の事項の1つを行うことが必要である。 余分な負荷をうまく扱うなんらかの方法を見つけ、部下の仕事をより密接に監視できるようにする。 監視する人を雇う。 部下同士が互いに監視するように動機づける。技術的、経済的、そしてモラル上の観点から、最後の選択が一般には最も望ましい。残念ながら、歴史的にもソフトウェアの組織が数十人を越えてくると、この「ニ人一組方式」は崩壊してしまう。このような場合には、SQAによって解決しなければならないのである。 規模が膨らみ、複雑なシステム/ソフトウェア開発を行っているからこそ、管理者に代わって、「要件通りにモノを作ったことを対外的に保証する」客観的な視点が必要になるのです。当然ながら、管理者のサポートが、効果的な品質保証活動を行う大前提となります。  さいごに いかがだったでしょうか。今回は、改めて品質保証活動の必要性について考察してみました。皆さんの効果的な品質保証活動を行う動機付けになれば幸いです。 内山哲三 

コラム

Automotive SPICE GP 徹底解説 その3 ~ そもそも能力レベル2とは?

これまで2回にわたって Automotive SPICE の GP(General Practice)について解説しましたが、今回は「能力レベル2って、どういう状態なの?」というテーマでお届けいたします。 本題に入る前に、「プロセス」って何でしょうか?と聞かれても、皆さん明確には答えにくいのではないでしょうか?最近流行りの生成AI君に尋ねてみると:  プロセスとは、物事がある結果に達するまでの道筋や手順、方法を意味します 類義語には、「過程」、「経過」、「手順」、「工程」などがあります と答えてくれました。そもそもカタカナで書いてあることから「プロセス」は日本語由来のものではなく、類義語ででてくるように人によってそれぞれの解釈で日本語に当てはめているものと思います。アセスメントのインタビューで、「私達にはプロセスはありません」という発言を聞くことがありますが、この言い回しは正しくありません。アセスメントの場では、発言者は「プロセス」=「手順を文書化したもの」と勘違いしてしまっているのです。何らかの成果物が生成されている限り、そこに至った過程、経過や手順は存在するはずです。 次のような2つのグループがある場合、あなたならどちらのグループに仕事を依頼したいですか?グループA 計画書を作成して、作業状況を計画に照らしてチェックしている あらかじめ作成すべき作業成果物を決めて、ドキュメントを管理している 作成したドキュメントは、必ずレビューを実施して誤りを訂正しているグループB 計画書はなく、グループ員にヒアリングしないと状況はわからない 作業成果物は担当者の申告ベースで、何があるか、何処にあるかはわからない レビューは実施せず、担当者の力量に任せている これだけでは、どちらのグループが良い成果物を納入する可能性があるか判断できませんが、グループBの方は、よっぽど優秀なメンバーが揃っていないと任せるのは怖い感じがしませんか?この2つのグループの違い、つまり仕事の仕方の違いがプロセス能力の違いなのです。アセスメントでは、プロジェクトにおける仕事の仕方および作成された成果物の十分性を判断して、プロセス能力を判定しています。 ではプロセス能力レベル2とは、どんな状態なのでしょうか?次の2つがポイントとなります 作業が計画的に実施できているか? 作業成果物が管理され、成果物の品質がチェックされているか?つまり、この2つの仕組みができていれば、プロジェクトに携わる人が変わったとしても、繰り返し一定レベルの成果が期待できるということなのです。このようなプロセスの状態になっているプロジェクトを「能力レベル2」と呼ぶというのが、アセスメントの評価基準になります。 アセッサーによっては重箱の隅をつつくように細かいことを指摘する人がいますが、極めて基本的なことだと思いませんか?Automotive SPICEでは、PA(Process Attribute)とGP(General Practice)を能力レベル2の判定基準として定めています。事例も含めて表にまとめてみました。それほど高い壁ではないと思いますので解釈の参考にしてください。     また、GPとプロセスには上図に示すような密接な関係があります。GPを十分に実現するためには、対応するプロセスで定義されるBP(Base Practice)の内容を実施しておく必要があると読み替えてください。 文書だけでは、わかりにくい領域だと思います。弊社ではAutomotive SPICEに関する無料相談会(ミニコンサル)も実施していますので、お気軽にご相談ください。日吉昭彦