Updates

新着情報

コラム

日本と欧米におけるソフトウェア開発アプローチの違い

1. アーキテクチャ設計の扱い日本のOEM(自動車メーカー)は、ソフトウェア開発においてサプライヤーにアーキテクチャ設計を明確に要求しない傾向があります。OEMが、「機能単位で仕様から設計、検証までを一貫して確認する」ことを重視するため、サプライヤーの開発プロセスも世界標準とは異なる建て付けになっていることが多いようです。これは、従来の製品開発における「現場で調整しながら完成度を高める」すり合わせの文化であり、全体構造を俯瞰する仕組みが不足しがちです。 一方、欧米では工学論を前提とした開発文化が強く、システム全体のアーキテクチャを明確に定義することが基本となっています。アーキテクチャは、機能の分割や責務の明確化、再利用性の確保、将来的な拡張性を担保するための基盤となります。この違いは、開発の透明性、効率性、そしてグローバルな分散開発への適応力に大きな影響を与えています。  こうした背景が、日本においてAutomotive SPICE(ASPICE)への対応を困難にしている要因となっていると考えます。Automotive SPICEは、プロセスの体系化やアーキテクチャ設計を前提とした評価モデルであるため、個別車両ごとの擦り合わせを重視する日本型の開発文化とは根本的にアプローチが異なるのです。 2. ソフトウェア品質基準の違い日本と欧米では、ソフトウェア品質の考えかたや、管理指標の定義にも大きな違いがあります。 日本の自動車業界では、まだまだ品質管理の発想が工業製品の品質保証の延長線上にあるようです。具体的には、バグ密度やリリース時の不具合件数といった「完成品の品質」を測る指標が重視されています。これは、製造業で長年培われた「最終検査で品質を保証する」という文化がソフトウェアにも適用されているためです。結果として、開発プロセスの途中で品質を作り込むというよりも、完成後に不具合を検出し、修正することに重点がおかれがちです。 しかし、近年では完成後に不具合を検出するのでは遅いという認識を持つ組織も増えています。そのため、各開発工程でレビューを行い、品質を定量的に評価する取り組みが進んでいます。ただし、その際に用いられる指標は、依然として工業製品の品質管理の延長線上にあることが多いのが現状です。例えば、レビューで確認するのは「不具合件数」や「修正率」といった結果指標が多いようです。また、ISO 26262対応で「設計の複雑さ」、「カバレッジ」などを導入しているケースもありますが、これらの指標が閾値を超えた場合の対応が甘く、計測はしているが活用できていないことが多いようです。つまり、日本のアプローチは、レビューを導入しても、根本的な品質保証の思想が「完成品の品質を検査で保証する」文化から脱却しきれていないのです。 一方、欧米では、品質を設計段階から作り込むべきものと捉えています。ソースコードの複雑度やモジュール間の依存関係、テストカバレッジなど、コードメトリクスを活用した定量的な評価が一般的です。これにより、開発の初期段階から品質リスクを把握し、構造的な問題を未然に防ぐことが可能になります。欧米のアプローチは、プロセス品質を重視する「工学的な品質保証」であり、Automotive SPICEやCMMIといった国際的なプロセスモデルとも親和性が高いのが特徴です。この違いは、単なる指標の差ではなく、品質に対する哲学の違いです。日本は「レビューを導入しても工業製品的な品質管理」の文化であり、欧米は「設計品質をプロセスで保証する」文化となります。このギャップが、グローバル開発における摩擦や、日本企業の国際標準対応の難しさを生んでいます。 3. ビジネスモデルの違いこれらの考え方は、ビジネスモデルそのものにも強く影響をおよぼしています。 日本の自動車業界では、車両ごとにOEMとサプライヤーが詳細な擦り合わせを行い、膨大な工数を投入することで品質を担保するモデルが一般的です。この方式は「一車種一設計」に近く、結果として非常に高い品質を実現します。しかし、その裏側では、開発コストと期間が膨らみやすく、再利用性が低いという構造的な課題を抱えています。車種ごとに設計を積み上げるため、開発スピードや効率性の面でグローバル競争に不利になりやすいのです。 一方、欧米の自動車業界は、標準化されたアーキテクチャや共通プラットフォームを開発し、複数車両への展開で生産性を高めるモデルを採用しています。このアプローチでは、基盤となる設計資産を維持しながら、差分開発で新機能や車両特性を追加するため、開発スピードとコスト競争力を両立できます。さらに、標準化によって品質保証の仕組みも統一されるため、グローバルな分散開発に適応しやすいという利点があります。 日本でもOEMの標準モデル開発の導入が進められています。しかしながら、サプライヤーの立場として見た場合、OEMに依存しないサプライヤー独自の製品(部品)アーキテクチャを持つことが重要です。そのうえで、複数OEMの要求に軽微な変更で対応できる仕組みを作ることが、グローバル市場で勝ち残るために必要ではないでしょうか?この違いは、単なる開発手法の差ではなく、産業構造の競争力に直結する問題です。日本の方式は、品質を高めるために「人と時間」を投入するモデルであり、短期的には高品質を実現できますが、長期的には持続可能性に疑問が残ります。過去に家電や携帯電話産業で見られたように、製品ごとに個別設計を行うモデルは、グローバル競争に敗れた歴史があります。同様の構造的リスクが、自動車ソフトウェア開発にも潜んでいるのです。さらに、SDV(Software Defined Vehicle)時代の到来により、ソフトウェアの比重は急速に高まっています。SDVでは、車両機能の多くがソフトウェアによって定義され、OTA(Over-The-Air)更新や機能追加が前提となります。車両ごとに個別対応するモデルでは、複雑化する機能やセキュリティ要件に追従することが困難になり、開発の遅延や品質リスクが増大する可能性があります。標準化と再利用性を軸にしたビジネスモデルへの転換は、日本企業にとって避けられない課題といえるでしょう。   4. 今後の課題と方向性現行の方法論は、国内市場や従来型の集中開発には一定の適合性がありました。しかし、他拠点開発や分散開発があたりまえになる時代において、日本の従来手法は限界を迎えつつあります。生産性の向上と品質の確保を両立するためには、製品アーキテクチャを確立し、設計書をマスター文書としてベースライン化することが不可欠です。これにより、設計の一貫性を維持しながら、品質と開発効率を大幅に向上させることができます。 さらに、ベースライン化された設計文書に変更を加える際には、変分仕様書を作成し、変更前と変更後を明確に示す差分開発の仕組みが必要です。この差分管理により、設計レビューの品質確保が容易になるだけでなく、再利用性を損なわずに新機能や改修を効率的に実施することが可能となります。こうしたプロセスを導入することで、再利用性・品質・開発スピードの三立が現実のものとなります。 今後、日本企業が競争力を維持・強化するためには、国内OEMの要求に応えつつ、欧米型の工学的アプローチを積極的に取り入れることが不可欠です。弊社では、プロダクトライン開発の実践経験を豊富に有しております。今回のコラムで取り上げた品質管理の課題や差分開発型の導入に関心をお持ちの方は、ぜひ弊社までお問い合わせください。 (日吉昭彦)

コラム

設計意図が伝わる仕様書へ──自動車開発に必須の“文書品質”改善術

自然言語による“解釈違い”がもたらすリスク製品開発における技術文書──要求仕様書、アーキテクチャ設計書、分析報告書、議事録。これらは最新の設計技法(Simulink、SysMLなど)を併用しても、最終的には自然言語による定義が必要です。なぜなら、仕様の目的、設計判断の背景、制約や前提、意図や理由といった情報はモデル図だけでは表現しきれないためです。しかしその自然言語は、“曖昧さ”という最大の弱点を持っています。その”曖昧さ”により、たった一つの文章を読み手が誤解釈しただけで、 重大不具合 作業の手戻り 予定外のレビュー追加 顧客指摘による信用低下など、プロジェクトに多大な影響をもたらします。実際の現場では、「仕様の解釈違い」「ドキュメントの不整合」「設計意図の不明瞭さ」が後工程で頻発し、そのたびにコストの増大やスケジュールの圧迫、品質低下を生み出してしまいます。 増え続ける読み手が誤解釈を拡大させている私たちが数多くの開発プロジェクトを支援する中で日々痛感するのは、“文書を読む人が増えているのに、書き方のルールは昔のまま”というギャップです。文書を読み手は後続設計者のみならず、 評価チーム 品質保証 顧客 サプライヤ マーケティング担当など、日々増加しています。にもかかわらず、「読めば理解できるはず」「長年の付き合いだから行間を読んでくれるはず」という前提で書かれた文書が、いまも多くの組織で量産されています。その結果──“書き手には正しいが、読み手には不完全”な技術文書が増え続け、今まで想定しなかった読み手に誤解を与えることによって、思いもしない領域で誤解が発生してしまうわけです。 意図が伝わる技術文書のウソ・ホントここでは、読み手に意図を正しく伝える技術文書にするためのポイントを、”ウソ・ホント”形式でご紹介します。 ① 「設計の意図や変更理由は書くべきである」→ ホント!設計した理由が書かれていないと、読み手は推測に頼ることになります。推測は解釈違いを生み、後工程でトラブルになる原因となります。自動車のワイパー制御を例にすると、書き手は「雨量センサーの反応を少し鈍くする」仕様に変更した際、「小雨時に過剰に動いてしまったため」という理由が明示されていなかったとします。すると読み手は、「反応が鈍くなるなら大雨に対しても感度を少し鈍くする」と誤解釈してしまうことが考えられるわけです。そうならないために、仕様項目の直下に「Purpose(意図)」欄を追加する、または“なぜこの案を選んだか・他案を却下した理由”を検討記録などに残しておくとよいでしょう。 ② 「全体像は文書内で示すべきである」→ ホント!読み手がまず知りたいのは、「この文書は何の話で、どこまでを書いているのか?」です。全体像がない文書は、読み手が迷子になり、レビューが長引きます。例えば文書の冒頭にシステム構成図がなく、説明が断片的なアーキテクチャ設計書が出来上がった場合、レビューで「そもそもこの機能の位置づけは?」「どこと通信する?」「この構成で要求仕様を満足できる?」という議論が何度も発生し、レビューが3時間超え、といったことが起きます。よって、読み手の理解を助けるために、設計書の冒頭に1枚の全体像(コンテキスト図・ブロック図)を必ず入れるようにすることをお勧めします。 ③ 「例外ケースは後で考えればよい」→ ウソ!例外ケースの未定義は、現場で不具合を生みやすいポイントです。例えば、正常系の仕様だけが定義され、異常時の挙動が“未定義”の場合、実装担当が独自判断で処理を追加してしまい、結果として顧客環境で意図と異なる動作になってしまうケースです。そうならないためには、各仕様に「Boundary(境界条件)」と「Exception(例外)」欄を追加する、または「この条件のときは、この仕様は適用されない」と定義するなど記述の工夫が必要です。 文書作成はセンスではなく“技術”である技術文書が伝わらない本当の理由は、文章力が低いからではなく、“構造化されていないから”である場合が少なくありません。文書は、 意図(Why) 理由(Reason) 相関(Relation) 全体像(Overview)の4つが揃えば、劇的に読みやすくなります。弊社では、項目の標準化、テンプレート改善、“意図を書く技法”の教育、レビュー基準の整備、文書作成プロセスの改善、などを通じて、文書品質を“組織として”底上げする支援を行っています。皆様の組織で、次のような状況はありませんか? 仕様の解釈違いが多い 手戻りが頻発している レビューが形骸化している 文書が読みにくく、説明に時間がかかるこれらは書き方を改善することで解決できるケースがほとんどです。「既存の仕様書を簡易診断してほしい」、「3文書だけレビューしてほしい」といった軽いご相談もお受けいたします。まずはお気軽にご相談ください。 お問い合わせはこちらhttps://www.bgarage.co.jp/contact/ (長澤 克仁)

コラム

車載システム開発における品質保証の進化──伴走型QAと現場で作り込む品質

車載システム開発におけるアジャイル普及と品質保証の現状近年、車載システム開発でもアジャイル開発(スクラムなど)の採用が進んでいます。しかし、品質保証(QA)は従来型の方法論に留まり、スプリント外で行われる監査やゲートレビューに偏っているケースが少なくありません。この方法論では、品質リスクが早期に共有されず、リリース直前に重大な問題が発覚することもあります。QAが「最後に合否判定を下す役割」として認識され、開発チームとの距離感が生まれてしまうのです。 品質保証の役割とアジャイル開発への適応従来型QAは、品質計画を立て、ゲートレビューや監査で品質基準を満たしているかを確認する役割を担います。これは品質保証の枠組みを維持するために不可欠です。一方、アジャイル開発では短いサイクルで価値を届けることが求められます。その中で、開発と同じリズムで品質を作り込む仕組みが必要です。そこで登場するのが 伴走型QA=Quality Engineering(QE) です。QEは、品質保証担当が担う場合もあれば、開発チーム内に専任を置く場合もあります。いずれの場合も、品質を「後から判定する」ではなく「一緒に作り込む」ことを目指します。QEはスプリントの長さに依存せず、例えば2週間のスプリントでも、計画・レビュー・分析をスプリント内で回すことが可能です。一部の事例では、イテレーション内の最終スプリントを品質保証活動に充てる方法もありますが、QEは全スプリントで品質を作り込む点が特徴です。 車載システム開発の現場で報告されている事例:QE導入による品質保証強化車載システム開発の現場では、QEを導入することで、従来型QAの仕組みがより効果的に機能した事例が報告されています。例えば、ある車載ソフトウェア開発チームの取り組みとして、次のような事例があります: スプリント計画時に品質リスクを洗い出し、優先度を設定し、チーム全体で共有→ リスクを早期に共有することで、対応漏れや後工程での不具合発生を防止 Doneの定義を明確化し、品質基準をチームで共有→ 品質基準の認識ズレが減り、レビュー指摘や手戻りが大幅に減少 スプリントごとに品質指標を振り返り、改善策を次スプリントに反映→ 継続的な改善により、品質課題を早期に解消報告によると、リリース前の重大不具合は半年で約50%削減され、品質リスクが早期に共有されることで手戻り工数も大幅に減少したとされています。この報告は、QAの枠組みとQEの現場適応が組み合わさることで品質保証が進化する可能性を示しています。 QAとQEの役割分担 QA(Quality Assurance)品質計画、ゲートレビュー、監査 → 品質保証の枠組みを維持 QE(Quality Engineering)スプリント内で品質リスク管理、Done定義、品質指標改善 → 品質を現場で作り込む両者は競合するものではなく、補完関係にある「両輪」です。 QEの具体的な関わり方 Doneの定義やチェックポイントの整理「何をもって完了とするか」を明確化し、品質基準をチームで共有 品質リスクの見える化と共有スプリント計画時にリスクを洗い出し、優先度を設定 技術レビューへの参加設計レビューやコードレビューに参加し、品質観点で議論をサポート レビュー指摘の分析スプリント内で発生したレビュー指摘(不具合や改善点)を記録・分析し、品質改善に活用 テスト結果の分析スプリント内で検出された不具合を分類・傾向分析し、次スプリントの品質戦略に反映 リリース判断のための品質情報提供「どこに懸念が残っているか」を可視化し、リリース可否判断に必要な情報を提供 スプリントの振り返りで品質状況を確認し、改善策を次に活かす不具合件数やレビュー結果などを確認し、改善策を次スプリントに反映まとめ品質保証は、もはや「最後に判定する役割」だけではありません。QAが品質保証の枠組みを維持し、QEが現場で品質を作り込む──この両輪で、品質保証はアジャイル時代に適応します。当社では、こうした取り組みを実現するために、品質リスクの見える化やスプリント内レビューの仕組みづくり、品質指標の設計といった仕組みづくりの お手伝い に加え、実際のQE活動における現場サポート(レビュー参加、品質データ分析、改善提案など)も ご支援できます。「QEをどう立ち上げ、QAと連携させるべきか?」とお悩みの方は、ぜひご相談ください。品質保証を進化させる第一歩は、開発とQA/QEが同じゴールを見て走ることです。(安部宏典)

コラム

生成AIはシステム開発・ソフトウェア開発をどう変えるのか?

生成AIの台頭と開発現場への普及近年、生成AI(Generative AI)は私たちの私生活だけなく、仕事の局面においても利用されるケースが多くなってきました。生成AIは、従来のルールベースや機械学習と異なり、コードだけでなく、人が普段使用する自然言語や画像などを生成する能力をもっています。 メモ: ルールベース:人が設定した事前のルールに基づいて動作し、特定のタスクについて高い精度と一貫性を持つ反面、柔軟性には欠ける。 機械学習:大量のデータから自己学習し、パターンを見つけ出す能力を持つが、結果の根拠がわかりにくく、学習の偏りが性能に影響する。一方開発現場は、仕様書作成や、コードレビュー、テスト設計、教育資料作成など「知的集約型作業」が多く、生成AIの活用余地が大きい印象があります。 メモ: 知的集約型作業:技術・知識・情報・判断力が価値の中心で、労働の量だけでなく、知識の質が成果を決める。生産性を高めるには、知識の蓄積と再利用、設計の品質を高めることが重要となる。 労働集約型作業:主に人の手作業や現場の働き手の数に依存する生産・サービスで、生産性を高めるには、人数を増やすか、作業を標準化して手間を減らすかが鍵となる。今回は、生成AIをどのように開発プロセスに導入していくと良いのかを考察してみました。唯一の答えではなく、あくまでひとつの見解として読んでいただけると幸いです。 生成AIの活用ケース皆さんご存知のように、生成AIはプロンプトを入力することで、「それなり」の出力を返してくれるので、開発プロセスの様々な場面で利用できる可能性があります。要求定義と仕様書作成の支援アイデア ユーザストーリーやユースケースの作成:プロンプトから指定した形式のストーリーやケースを作成する 曖昧性の検出:自然言語仕様に潜む曖昧表現(例:「これまでと同様に処理する」)を指摘し、改善案を提示する 翻訳支援:日英併記仕様書の生成、用語統一を支援する 国際標準の適用:要求工学との整合性を意識し、構文化された要件記述を促進する。設計・実装作業の支援アイデア 短いコードの断片生成:設計書から関数の雛形を生成する 設計書の記述補完:クラス図やシーケンス図の説明文を自動で生成する スクリプト自動化:JIRAやConfluenceの操作をScriptRunnerで自動化するために、そのスクリプトを提案する 面倒な作業のたたき台作成:FMEAなど多くの工数が必要なる作業のたたき台を生成する(「生成AIを活用した設計ドキュメント作成プロセス効率化支援」を参照)テスト・品質保証への応用アイデア テストケース生成:仕様書から境界値・異常系を含むテストケースを生成する 不具合報告書の作成:不具合内容を自然言語で要約し、指定したカテゴリに分類する テスト結果の報告書作成:テスト結果を要約し、報告書を自然言語で自動生成する レビューや監査のコメント生成:プロジェクト成果物のレビューや監査のコメントを提案する教育・ナレッジマネジメントへの利用アイデア 教育資料の作成:ISOやIEEEなどの一般知識を図解付きで説明する資料を作成する FAQ・用語集の作成:社内固有の用語を定義と使用例を自動生成する 多言語展開:既存の日本語教材を、技術用語や文脈を考慮して英語教材へ翻訳する(「AIの力でリアルを超える!多言語対応の次世代動画制作を始めました」を参照) 導入における留意点と課題一見すると、人間にとって都合の良いように、何でもやってくれそうですが、生成AIはまだ、発展途上であり日々進化しているため、現時点では利用する際には、いくつか留意点があると考えています。出力の信頼性皆さんご存知のように、生成AIは虚偽または誤解を招くような情報を、あたかも事実にように提示するハレーション(ハルシネーション)を起こします。また、生成AIは、事前に学習した膨大なデータから「次に来る言葉」を確率モデルから予測して出力しているため、毎回同じ出力が出るわけではありません。よってルールベースにように、精度が高く一貫性のある出力を生成するわけではありませんから、生成結果はあくまで「提案」と捉え、人間によるレビュー・検証が不可欠になります。プロンプト設計力「プロンプトエンジニアリング」という言葉があるように、適切な指示を与える技術やスキルが、生成AIの出力の品質を左右します。プロンプトエンジニアリングに関する書籍やサイトが多くあることからも、その重要性を一目瞭然です。また、開発現場の当たり前が生成AIにとっての当たり前でない可能性もあります。プロンプトやコンテキストなどの入力を与える際には、それが一般的な情報なのか、組織や製品に固有な情報なのかを整理し、質の良い出力を得る様々な工夫が必要であると考えます。セキュリティ・著作権社内情報や第三者の知的財産を扱う際には注意が必要です。生成AIが出力する際、クラウド上で処理される可能性が高いため、情報漏洩リスクがあります。生成AIの学習範囲を限定したり、社内ポリシーで入力可能な情報の範囲を明示したり、入力検証・フィルタリングの仕組みを導入して、利用制限を設ける必要があります。生成AIが学習したデータに著作権がある場合、その影響を受けた出力が著作権侵害と判断される可能性がありますが、個々の出力結果に対して警告してくれるわけではありません。AIが生成したコードや文章をそのまま使う場合、著作権の所在が不明確なことがあるので注意が必要です。 今の生成AIはあくまで「良き相棒」前述の留意点や課題を考えると、特定の開発工程や開発作業を、マルっと人に代わって生成AIにやってもらう(自動化してもらう)には時期尚早ではないか。というのが筆者の見解です。「設計のアイデアを他の人からもらいたい」「誰かちょっと分析を手伝ってほしい」といった、開発者個人のサポート役として生成AIを活用するのが、現時点での適切なやり方ではないかと考えています。1990年代後半から2000年代初頭に流行った「ペアプログラミング」のように、開発者に代わるモノではなく、開発者の良き相棒になってくれれば、個人の生産性や作業の質は向上し、開発者の集合体である組織の開発プロセスの生産性と質の向上にもつながるのではないでしょうか。生成AIに関して、いま組織が標準化すべきは、生成AIによる自動化を狙ったプロセスではなく、開発者個人に向けた「生成AIの利用ガイドライン」なのかもしれません。 内山哲三

コラム

Automotive SPICEの前に考える“要求の肥大化”対策 ~要求仕様を明確にする3つのポイント~

「最初は小さな追加だったのに、気づけば手がつけられないほど要求が膨らんでいた。」皆様の現場ではこのような事象に遭遇したことはないでしょうか?いわゆる「要求の肥大化」です。今ではアジャイル開発の普及やツールによるトレース管理などが進み、昔に比べると要求の肥大化そのものは抑制傾向にあります。しかしながら、年々技術の高度化・統合化が急速に進むにつれ、リリース直前にもかかわらず五月雨式に要求が発生するケースは少なくありません。当初の想定を超えた要求が増え続けると、スケジュールは遅れ、品質は落ち、チームの士気も下がります。「うちでは起きていない」と思っていませんか?実は、どんな現場にも“要求の肥大化”の芽は潜んでいるのです。そう考えると、要求の肥大化はもはや一部の大規模開発だけの問題ではないのです。Automotive SPICEでは要求管理が開発プロセスの基盤として定義されていますが、実際にはAutomotive SPICEの適用だけでは“要求の肥大化”を完全に防ぎきれないケースが多く見られます。そこで、要求の肥大化はどういった原因で起こるのか、考えてみたいと思います。 ■ 要求の肥大化が起きる主な原因 ステークホルダーが多い今は1製品のことだけ考えれば良いものづくりは影を潜め、ヒト・モノと繋がるスケールの大きな製品づくりが主流です。それによって、プロジェクトのスコープが拡がり、ステークホルダーも増えていきます。そうすると、ステークホルダー毎に多種多様な要求が発生していきます。すべての要求を取り込もうとした結果、特にコスト、納期を超過してしまいます。 要求が曖昧なまま進む要求仕様書自体の曖昧さも要求肥大化の原因になります。具体的には、要求仕様書に「〜など」「〜関連」「〜のように」のような“便利な曖昧語”が書かれていることがあります。この“便利な曖昧語”が、「こういう要求も含むよね?」といった要求の肥大化に繋がることがよく見受けられます。 要求追加を断り切れない顧客からの要求に対して、「大切な顧客に言われたら断れない」「少し無理をすれば何とかなるだろう」といった安易な受容が、次々と要求を呼び込んでしまう要因になり得ます。次第に要求を断りづらい雰囲気が生まれ、最終的には未対応の要求事項がいくつも残存したまま納期を迎えてしまうことは珍しくありません。 ■ 要求の肥大化を防ぐための『処方箋』要求の肥大化が起きる原因は現場の努力不足ではありません。以下のような「仕組みとルール」でコントロールすることができます。 スコープを明確にするプロジェクト計画立案の段階で、「今回はここまでしかやらない」と範囲を明確化し、ステークホルダー間で合意を取っておきます。その際には、要求を採用するかどうかを「コスト」「納期」「品質」などの観点から定量的に検証する基準を設けることが重要です。例えば、要求ごとに「コスト増加率」「スケジュール影響度」「顧客価値への貢献度」を簡易的に見積もるフレームを持ち、これらをトレードオフ評価してスコープを決定します。また、スコープ外要求が出た場合は、判断ルールに沿って扱う柔軟性も兼ね備えておくことが必要です。 曖昧な要求表現を排除する仕様書や設計書、議事録に至るまで、定義や条件が具体化されていることを複数人の目で確認し、誰が見ても同じ理解になるよう整理しなおす機会を持つことが必要です。「“~など”や“~のように”が記載されていないか」といった定義の明確さを確認するチェックリストを用意する仕組みも有効です。 要求受け入れの判断を仕組み化するプロジェクトが厳守すべき方針に基づき、CCB(変更制御委員会)などの場で要求の受け入れ可否を判断する仕組みを取り入れます。その場合、「誰が」「どういう基準で」変更の受け入れを判断するかを明文化しておくことが重要です。では、具体的にどのような基準で判断すればよいのでしょうか。以下に一例を紹介します。あるプロジェクトでは開発期間を3カ月単位のリリースサイクルと定義し、要求の出し方・締切・変更ルールを明確にして運用していました。 各リリースは3カ月単位とし、期間の延長や早期リリースは行わない 1リリースの中で数回のフェーズに区切って開発をする 第1フェーズ(スタート~2週間)までに要求を確定する 第3フェーズ(5週目~8週目)までは要求変更を許容する それ以降の要求追加・変更は次リリースに持ち越しこのように、あらかじめ「いつ・どの範囲まで変更を受け入れるか」をルール化しておくことで、品質とスケジュールの両立が可能になっていきます。 ■ Automotive SPICEに固執しすぎない、現場に効く支援を要求肥大化の防止は、単にAutomotive SPICEの要求管理プロセスを満たすだけでは実現しません。重要なのは、「現場が運用できる形で仕組みを落とし込む」ことです。弊社は要求定義を含む開発経験豊富なコンサルタントが在籍しており、現場目線で支援しています。また、コンサルティングの中で、設計文書に潜む曖昧表現の抑制に向けたプライベート教育も行っています。私たちはAutomotive SPICEの規格に固執しすぎず、組織文化やチームの成熟度に合わせた“浸透しやすい最適解”を提案し続けています。ぜひ、現場に合った仕組みづくりについてご相談ください。 弊社YouTubeチャンネルにてソフトウェア要件分析のポイントを解説しております。こちらもご覧ください。【ソフトウェア要件分析プロセス②】Automotive SPICE 活動のポイント お問い合わせはこちら(弊社コンサルタントがご相談を承ります)https://www.bgarage.co.jp/contact/ (長澤克仁)

コラム

ソフトウェアテストのプロセス改善を支える国際標準~Test SPICE~

 はじめに ソフトウェア開発において、テストは品質保証の要です。しかし、テスト活動そのものの成熟度やプロセス品質を体系的に評価・改善する枠組みは、長らく十分に整備されていませんでした。そこで登場したのが Test SPICEです。今回はTest SPICEの概要について解説します。  Test SPICEの位置づけ Test SPICEは、ISO/IEC 330xxシリーズの一部として策定された、ソフトウェアテストに特化したプロセス評価モデルです。従来のSPICE(Software Process Improvement and Capability Determination)モデルをベースに、テスト活動の特性に合わせて設計されています。 国際ソフトウェアテスト資格認定委員会(ISTQB)のシラバスに基づき、長年にわたるソフトウェア/システムのテストに関する世界中の有識者の経験を体系的にまとめ、テストプロセスの共通フレームワークを提供しています。 「検証サービスプロバイダ」 に求められる組織能力を可視化し、プロセス改善による組織能力向上を図ることを目的としていますが、テスト資産の再利用や回帰テストの自動化など、ソフトウェア開発組織のテストプロセスの改善にも有益な内容になっています。  構成と特徴 Test SPICEは、以下のようなプロセス群で構成されています: ビジネスライフサイクルプロセスカテゴリー: テスト計画、設計、実行、評価などテスト運用に使用されるプロセスで構成されています。 技術ライフサイクルプロセスカテゴリー: テスト環境管理、テストデータ管理、テストの自動化など、テストを技術的に有効利用するプロセスで構成されています。 テストリソース合意プロセスカテゴリー: テストを実施するための人的・物理的リソースを調達または供給するプロセスで構成されています。検証サービス、テスト資産、テストツールなどテスト実施のために取引されるあらゆるものが含まれます。 アジャイル拡張プロセスカテゴリー: Test SPICEのコアプロセスではありませんが、テストプロセスをアジャイルに実行するためのプロセスが定義されています。各プロセスは、Automotive SPICEと同様に、目的・成果物・ベースプラクティスが定義されており、能力度レベル(Level 0〜5)に基づいて評価されます。  Automotive SPICEとの違い 範囲の違いとしては、Automotive SPICEがシステム・ソフトウェア開発全体を対象とするのに対し、Test SPICEはテスト活動にフォーカスしています。両者を組み合わせることで、より精緻なプロセス改善が可能になります。 また構造的な違いとして、Test SPICEでは、各プロセス群に「包括プロセス(Overarching Process)」と「詳細プロセス(Detailed Process)」が定義されています。Automotive SPICEでは、プロセス群には単にプロセスが定義されていますが、Test SPICEでは、包括プロセスと詳細プロセスが親子関係をもって定義されています。包括プロセスの各BPに対応するように詳細プロセスが定義されており、より詳細な評価指標を定義しています。 Test SPICEを用いたアセスメントを計画する際には、包括プロセスを対象とするのか、詳細プロセスを対象するのかを明確に決定することが求めれています。両者を混在させることは推奨されていません。迅速かつ大まかな分析を行う場合は、包括プロセスとそれらのBPを使用し、より詳細な分析を行う場合は、詳細プロセスとそれらのBPを使用することが期待されています。 各ライフサイクルプロセスカテゴリーで定義されている包括プロセスと詳細プロセスは下図のようになっています。   例えば、技術ライフサイクルプロセスカテゴリーにあるテスト自動化プロセス群(TAU)の包括プロセスと詳細プロセスの関係について見てみましょう。 包括プロセスとして定義されている「TAU テスト自動化プロセス」には、6つのBPが定義されています。6つのBPは、テスト自動化のための要件定義・設計・実装・テストケース実装・自動化実施・使用状況の監視に関するプラクティスになっています。これら6つのBPに対応する形で詳細プロセスが定義されています。各詳細プロセスには、包括プロセスが定義しているBPをより詳細にしたBPが定義されています。 大まかに何をすればよいのか知りたいときは包括プロセスを参照し、具体的に何をすべき把握したいときは詳細プロセス参照すると良いですね。  Test SPICEを覗いてみよう もう少し理解を深めるために、「TAU テスト自動化プロセス」がどんな内容になっているのか見てみましょう。 先に述べたように、包括プロセスである「TAU テスト自動化プロセス」では、テスト自動化のための要件定義・設計・実装・テストケース実装・自動化実施・使用状況の監視に関する6つのBPが定義されています。これら6つのBPに対応する形で詳細プロセスが定義されています。 これを図示すると以下のような作業の流れになります。  TAU.1:テスト自動化のニーズと要件の抽出プロセス 包括プロセスのBP1に対応した詳細プロセスです。 組織におけるテストに対する思想を記述したテスト方針に基づいて、テスト自動化に対する共有理解を得るために要件仕様書とアーキテクチャ設計書を作成します。 また、どのようにテスト自動化を実現していくのかを記述した、テスト戦略と計画書も作成します。 TAU.2:テスト自動化の設計プロセス 包括プロセスのBP2に対応した詳細プロセスです。 テスト自動化の実現手段を明確にするために、TAU.1の成果物をインプットに、テスト自動化の設計書を作成します。 使用するツールもここでリストアップしておきます。 TAU.3:テスト自動化の実装プロセス 包括プロセスのBP3に対応した詳細プロセスです。 テスト自動化の基盤を構築するために、TAU.2で作成した設計書をインプットに、リストアップしたツールを利用して、自動化ソフトや実行に必要な構成ファイル、サンプルスクリプトなどを作成し、動作を確認します。 TAU.4:テストケースの実装プロセス 包括プロセスのBP4に対応した詳細プロセスです。 実際にテスト自動化を実行するために、TAU.3で準備したソリューションを使用して、テストケースをテストスクリプトに変換し、実行に必要なテストデータやテスト手順も作成します。 TAU.5:テスト自動化の実施プロセス 包括プロセスのBP5に対応した詳細プロセスです。 ここで実際にテスト自動化を実行し、テストログやテストレポート、不具合報告を生成していきます。 TAU.6:テスト自動化プロセスの監視プロセス 包括プロセスのBP6に対応した詳細プロセスです。 実際にプロジェクトでテスト自動化の使用状況を確認し、意図した利用ができているか、組織として当初目指していた、コスト削減や製品品質の均一化に対する妥当性を評価します。 「テストの自動化はコストにも品質にも良いのはわかるけど、何からやったらよいの?」「テストは自動化できたけど、かえって手間が増えてしまった気がする」 こんな悩みや困りごとをお持ちの方は、有益なヒントが詰まっているTest SPICEを参照すると良いと思います。 他にも「テスト仕様書だけじゃなくて、テスト環境も上手く再利用したい」方や「そもそも、どんなテストが自分たちの製品に有効なのか改善したい」方など、少しでもテストに関する悩みがある方は参考していただけると良いと思います。  さいごに いかがだったでしょうか。Test SPICEは、Automotive SPICEと同様に、組織的な品質文化の醸成や教育・研修の教材として活用できますが、テストプロセスに特化した可視化や標準化だけでなく、テスト資産の再利用やテスト自動化など具体的な改善にも活用することができます。 興味のある方は一度Test SPICEのPAMを参照してみてください。  内山哲三 

コラム

「テスト頼み」からの脱却──レビュー文化が品質を変える

※本コラムでは「品質保証」を、SQAによる監査に限定せず、設計段階から品質を作り込むためのレビュー活動や不具合予測・分析など、開発プロセス全体における品質向上の取り組みとして広く捉えています。 なぜ“テスト頼み”では不十分なのか?製品開発における品質保証は、テスト工程に偏りがちです。多くの組織では、テストで検出された不具合をもって品質を評価し、設計工程でのレビュー指摘は記録されない、あるいは品質活動の一部として認識されていないことがあります。しかし、品質は本当に“テストだけ”で保証できるのでしょうか?テストは重要な工程ですが、あくまで後工程であり、設計段階での不具合をすべて検出できるわけではありません。特に組込み系開発では、タイミング依存や環境依存の不具合が多く、テストだけでは限界があります。設計段階での不具合を未然に防ぐには、レビューによる“作り込み”が不可欠です。 レビューで防げる不具合──“作り込み”の力実際の開発現場では、テストでは検出が難しく、設計レビューによって未然に防げる不具合が少なくありません。たとえば、割込み処理において、ある特定の条件下でのみ発生するフラグのクリア漏れによる不具合があります。これは、割込みが連続して発生した際に、ある処理パスでフラグのクリア処理が抜けてしまい、制御が意図しない状態に陥るというものです。こうした不具合は、テスト環境では再現が難しく、実機での長時間運転試験中に偶然発覚することもあります。しかし、設計レビューの段階で割込み処理のフローや状態遷移を丁寧に確認していれば、「特定条件下でフラグのクリア処理が抜けている」という設計ミスを早期に指摘・修正できた可能性が高いのです。他にも、周期処理の遅延、初期化漏れ、状態遷移の不整合、インタフェース仕様の不一致など、テストでは見逃されがちな不具合があります。これらは設計レビューで仕様と実装の整合性を確認することで、早期に対応可能です。このような事例からも、レビューは設計段階から品質を“作り込む”ための、実効性の高い活動であることが分かります。レビュー文化が根づいている組織の取り組みある開発組織では、レビュー工程を品質保証の中心に据え、設計やコードの段階で不具合を早期に検出・記録・分析する文化が根付いています。レビュー指摘はテスト不具合と同様に品質データとして扱われ、工程ごとの不具合予測と実績を比較することで、品質計画の達成度を定量的に評価しています。たとえば、「今回の開発規模からは30件の不具合が作り込まれると予測されるため、テスト前までにその6割、18件以上をレビューで検出する」といった計画が立てられ、レビュー活動が品質保証の仕組みとして機能しています。このような組織では、レビューはチェックリストの確認に留まらず、設計の妥当性を議論し、知識を共有する場として活用されています。レビューが活かされない現場の課題品質保証がテスト中心になっているレビュー工程を品質保証の中心に据える文化が十分に定着していない組織も少なくありません。レビュー活動自体は行われていても、その成果が品質向上に十分に活かされていないケースが多く見られます。 レビュー指摘が品質データとして活用されていない品質保証の仕組みがテスト結果中心に設計されていることが一因です。レビュー指摘は「コメント」や「改善提案」として個別に修正されることはあっても、品質データとして体系的に扱われることが少なく、品質指標に反映されていないケースが多く見られます。 記録方法が分析に適していないレビュー指摘を品質データとして記録・分析すれば、品質リスクの傾向を把握し、戦略的な品質保証活動につなげることができます。しかし、指摘内容が個人のメモやメール、Excelファイルなどに分散していたり、記録項目が統一されていない場合、後から集計・分析することが困難になります。 組込み系開発特有の制約特に車載ソフトウェア開発では、ハードウェアとの密接な連携や制約が多く、設計変更の影響範囲が広くなる傾向があります。このため、レビュー対象が多岐にわたり、限られた時間内で全てを十分に議論するのが難しい場面も少なくありません。 実験文化によるレビュー軽視「動かしてみて確認する」という実験文化が根強く残っていることも関係しています。設計段階でのレビューによる品質の作り込みよりも、実機検証による問題発見に重きが置かれる傾向があり、レビューの位置づけが弱くなりがちです。しかし、レビューには、テストでは検出が難しい不具合を未然に防ぐ力があることは、すでに述べた通りです。だからこそ、レビューを単なる形式的な確認作業に留めず、品質保証の中核として位置づけることが重要です。まとめ:レビューが品質を変える第一歩レビューは品質保証の起点であり、設計段階から品質を高めるための重要な仕組みです。その価値は、実際に仕組みとして活かされて初めて実感できるものです。「レビューって本当に意味があるの?」「チェックリストを増やすだけでは?」そんな疑問を感じたことがある方こそ、一度立ち止まって見直してみてはいかがでしょうか。レビューの質と成果を可視化し、現場に根づかせる工夫次第で、品質保証のあり方は大きく変わります。そして、レビュー指摘を品質データとして活用することで、継続的な改善と品質の安定化にもつながります。レビュー文化を育てることが、持続的な品質向上への第一歩です。もし、レビューの活用に課題を感じているようでしたら、ぜひお気軽にご相談ください。あわせて、レビュー運用の改善に役立つトレーニング情報もご紹介します。「ソフトウェアレビュー技法トレーニング〜ソフトウェアレビュー技法と​効果的な実施・運用のポイント〜」(安部宏典)

コラム

使えるプロセス vs 使われないプロセス:決定的な違いと成功事例

「うまくいくときもあれば、失敗するときもある」プロセス改善は、こうした属人的な開発から脱却し、誰がやっても一定の品質・納期・コストを再現できる仕組みをつくるための重要な取り組みです。しかし近年、開発の複雑化や規格対応の厳格化により、品質問題や納期遅延のリスクはますます高まっています。その一方で、監査や認証取得を目的に整備された“形だけのプロセス”が現場で使われず、改善が止まってしまうケースが増えているのも事実です。良いプロセスも、現場で使われなければ意味がありません。では、なぜプロセスは使われなくなるのか?どうすれば現場で本当に役立つプロセスになるのか?このコラムでは、私たちの現場支援の経験をもとに、成功のヒントをいくつかご紹介します。 ❖プロセスを定義することがゴールになっていませんか?Automotive SPICEやCMMIなどの規格に基づいて開発プロセスを構築することは、多くの組織で採用されている一般的なアプローチです。しかしそこには落とし穴があります。それは、開発上の問題を解決するためのプロセス構築だったはずが、いつしか「プロセスを定義すること」に目的がすり替わってしまうことです。その結果、どのような状態になるのか――以下の現象が多くの組織で共通して見られます。 -プロセス文書は立派だが、現場ではほとんど参照されない-「監査対応のために作っただけ」という空気が漂っている-改善どころか、プロセスが更新されないまま放置されている そこには認証取得が強い動機になっていたり、目に見えるプロセス文書自体の完成度で改善を評価する文化がそうさせているのかもしれません。しかし、こういった結果を引き起こすと、せっかく時間とコストをかけて作ったプロセスが“使われないプロセス”として資産化されてしまい、いわゆる宝の持ち腐れになってしまいます。そして、顧客や経営層が期待した「品質向上」「効率化」「リスク低減」といった投資対効果が得られず、一過性の活動に終わってしまうのです。 ❖使えるプロセスに共通する特徴一方で、現場で「使えるプロセス」を実現している組織には、共通する特徴があります。私たちが支援してきた成功事例を振り返ると、次の4つがキーポイントとなっているようです。  改善の場にプロセスを使う現場も参加している本来、プロセスは開発現場で活用されるために存在します。そのため、現場の担当者はプロセス改善を「自分たちの業務を助けるための取り組み」として、前向きに捉えています。そのため、当事者である現場の担当者もプロセスづくりに積極的に関与しています。 規格用語ではなく、利用者の言葉でプロセスを定義している規格の表現をそのままプロセス文書へ転記することは否定すべきものではないのですが、規格の意図を理解して自分たちの表現でプロセスを定義することで、より明確に作業イメージができ、結果として「使ってみよう」という意識につながっていきます。 プロセスが日々アップデートされているプロセスの定着が成功している現場では、「プロセスが定義されてからが本当のスタート」と認識しています。そのため、現場が使えるプロセスにするためにプロセスの使用状況をよく観察し、“もっと良いプロセス”を常に追求し続けています。 プロセスのサポーターが現場の近くにいて、相談できる環境がある現場にとって今までとは異なるプロセスを適用することは、少なからず抵抗感や煩わしさを伴います。そんな時に、プロセスの意図や具体例を教えてくれるサポーターが近くにいることで安心感を生んでいます。その安心感が現場のプロセス定着を後押ししています。 ❖その状態を作るための3つのポイントでは、どうすれば「使えるプロセス」の実現につながっていくのでしょうか?私たちが現場で支援してきた経験から、次の3つの要素が重要と考えています。  “現場の負担感”を最初に測る多くの組織で失敗する理由の一つは、「改善が現場にとってどれくらい負担になるか」を考えずにプロセスを設計してしまうことです。私たちが見てきた成功事例では、プロセス導入前に「どこで手間が増えるか」「どの作業が嫌がられるか」をヒアリングし、その負担を減らす工夫を優先的に組み込んでいます。  “小さな成功体験”を早く作るプロセス改善は、一気に全社導入しようとすると失敗しやすいです。私たちが支援した企業では、まず一部のチームで試し、短期間で「便利になった」「手戻りが減った」という成功体験を作るようにしています。この小さな成功体験が口コミで広がり、自然と他のチームも「やってみたい」と動き出します。以下に、実際にあった小さな成功体験の事例をご紹介します。 ある自動車部品メーカーでは、全社標準プロセスを導入したものの、現場からは「手間が増えるだけ」、「結局、アセスメント対策でしょ」という声が上がっていました。そこで、まず一部のチームだけに改善を適用することを提案しました。 対象:納期遅延が多かった小規模プロジェクト改善テーマ:“レビューの抜け漏れ防止”に絞る新しいプロセス:既存ツールに簡単なチェックリストを追加する“だけ” 結果、レビュー抜けによる手戻りを想像以上に減らすことができ、チームからは「これなら負担にならない」、「むしろ楽になった」という声が出ました。この成功体験が社内で共有され、他のチームからも「うちでもやりたい」という声が自然に広がっていきました。  “プロセスを変える理由”を語り続ける現場がプロセスを嫌がる要因として、What(何を変えるか)は伝えているものの、Why(なぜ変えるのか)が伝わっていないケースが多いようです。「規格対応だから」「監査で必要だから」では、モチベーションは上がりません。成功している企業は、「このプロセスで残業が減る」「レビュー制度が上がり、品質問題が減る」といった現場にとってのメリットを、繰り返し伝え続けています。 ❖ものづくりの主役は『人』プロセスづくりも、ものづくりも、すべては私たち『人』が為せる業です。その『人』が変わるためには命令や指示だけではなく、3つのポイントで挙げたような人の想いや意識にアプローチする取り組みも必要です。その上で、改善に関わる経営層、EPG(Engineer Process Group)、現場が一体となり、血の通ったプロセスをつくり、運用することが、すべての課題解決の根底にあると考えます。とはいえ、何もかも自分たちで計画を立てて体制を作り上げていくのは至難の業です。私たちは、その改革に加わり、一緒に手を動かし、皆様と一緒になって課題解決をすることを得意としています。まずはお気軽にご相談ください。 お問い合わせはこちら(弊社コンサルタントがご相談を承ります)https://www.bgarage.co.jp/contact/ (長澤克仁)