今月の8月28日に、執筆した「ソフトウェア品質保証ガイド チームで顧客満足を実現するためのアプローチ・手法・技術」が発売されます。

https://www.kadokawa.co.jp/product/302607002896/
この本は、顧客満足を実現する活動を品質保証とし、ソフトウェアプロダクトの開発から運用までライフサイクル全体に求められる品質保証活動について解説しています。
読者はQAエンジニアに限定せず、開発チームに関わるエンジニアやマネージャ全般に広く読んでいただくことを想定して執筆しました。
トピックとして次のような内容を扱っています。
- シフトレフトや品質の積み上げの実践
- 開発と運用のフィードバックループの推進による顧客満足の向上
- 要求分析から設計、実装、テストまで、ソフトウェア開発ライフサイクル上で有効な顧客満足の実現・向上活動
- 生成AI活用や開発プラットフォーム整備といった技術活用
- 顧客満足を支えるアーキテクティング
- 顧客満足を維持・向上するための保守性・運用性作りこみ
ぜひ買っていただけると嬉しいです。
内容の参考として、目次を列挙します。
第1章 品質と品質保証 1.1 本書における品質保証の定義 1.2 品質とは 1.2.1 品質の難しさ 1.2.2 自分たちにとっての品質を追求しなければならない 1.2.3 あるべき品質を追求する 1.2.4 品質のさまざまな側面や種類 1.2.5 品質モデル 1.2.6 現代的なソフトウェア開発を支える品質 1.2.7 品質を支える開発組織 1.3 ソフトウェアの品質保証とは 1.3.1 品質保証の定義 1.3.2 顧客満足を実現するための活動 1.3.3 開発チームの力を伸ばす品質保証の基本方針 1.3.4 三現主義・五ゲン主義で品質保証活動を推進する 1.3.5 ソフトウェア品質保証の当事者 1.3.6 品質保証で避けるべき姿勢 1.3.7 品質マネジメントシステムを整備する 1.3.8 ハードウェア開発とソフトウェア開発での品質保証の違い 1.4 QA エンジニアの価値 1.4.1 QA エンジニアとしての価値の確立 1.4.2 QA エンジニアのロールモデル 第2章 品質保証のアプローチ 2.1 品質のシフトレフト 2.1.1 シフトレフトの恩恵 2.1.2 シフトレフトの誤解 2.1.3 シフトレフトを支える施策 2.1.4 W モデル 2.2 品質改善サイクルの推進 2.2.1 PDCA サイクル 2.2.2 品質改善サイクルの種類 2.2.3 源流管理と水平展開 2.2.4 品質改善サイクルの組織定着 2.2.5 改善サイクルをまわすためのバグ情報の蓄積 2.2.6 ODC 分析 2.3 プロダクトリスクの分離 2.3.1 プロダクトリスクの分離を支える施策 2.3.2 バルクヘッドパターン 2.3.3 汚染防御設計 2.3.4 ソフトウェア安全クラスの分離 2.4 品質の積み上げ 2.4.1 工程品質の積み上げ 2.4.2 スパイラル型品質の積み上げ 2.4.3 コンポーネント品質の積み上げ 2.5 体系的品質保証 2.5.1 品質保証の体系化のアプローチ 2.5.2 テスト活動の体系化 2.5.3 体系的品質保証で留意すべき効果や法則 第3章 開発アプローチに合わせた品質保証 3.1 アジャイル開発での品質保証アプローチ 3.1.1 アジャイルソフトウェア開発宣言 3.1.2 アジャイルの原則 3.1.3 アジャイルテストの原則 3.1.4 アジャイルテストの四象限 3.1.5 アジャイルを支える品質保証体制 3.1.6 アジャイルでの品質保証のアプローチ 3.1.7 スクラムを支える品質保証 3.1.8 スクラムを支える品質保証体制 3.1.9 プロジェクトのコンテキストにアジャイルを適応させる 3.2 DevOps での品質保証アプローチ 3.2.1 DevOps とは 3.2.2 ホリスティックテスト 3.2.3 DORA Four Keys と品質保証での対応 3.2.4 DevOps を支える品質保証体制 3.2.5 DevOps を支える品質保証のアプローチ 第4章 品質の評価 4.1 品質の評価 4.1.1 仕組みの評価で品質を保証する 4.1.2 品質メトリクスの選択 4.1.3 GQM 4.1.4 評価基準の設定 4.1.5 品質評価を支える計画と仕組みづくり 4.1.6 品質保証としての品質評価の心がけ 4.1.7 品質評価の手段 4.2 レビュー 4.2.1 レビューの強みと弱み 4.2.2 レビューの適用領域 4.2.3 レビューを行うポイント 4.2.4 レビューの効果を引き出すための工夫 4.2.5 レビューが適切に実施されているかの確認 4.2.6 レビューの手法・技法 4.3 静的解析 4.3.1 静的解析の強みと弱み 4.3.2 静的解析の適用領域 4.3.3 静的解析を行うポイント 4.3.4 静的解析の効果を引き出すための工夫 4.3.5 静的解析の技術 4.3.6 生成 AI による静的解析 4.4 動的テスト 4.4.1 動的テストの適用領域 4.4.2 動的テストを行うポイント 4.4.3 動的テストの効果を引き出すための工夫 4.4.4 動的テストの分類や種類 4.4.5 探索的テスト 4.5 モニタリング 4.5.1 プロダクトのモニタリング 4.5.2 プロセス品質のモニタリング 4.5.3 品質保証で活用できるプロセス品質のメトリクス 4.5.4 モニタリングを支える品質の見える化 4.5.5 モニタリングの効果を引き出す工夫 第5章 開発工程を支える 5.1 開発工程を支える 5.1.1 開発ライフサイクル上の品質の要所を押さえる 5.1.2 少数の品質保証リソースで開発を支えるための工夫 5.1.3 開発スピードを損なわず開発を支えるための工夫 5.2 要求分析・要件定義を支える 5.2.1 要求分析・要件定義の適正化を支援する 5.2.2 品質要求を分析し要件化する 5.2.3 ユーザや現場を観察して品質保証の知見を学ぶ 5.3 設計・実装を支える 5.3.1 顧客満足を支える品質の実現をサポートする 5.3.2 品質と開発のスピード・レジリエンス・持続性の共立を支える 5.3.3 適切な保守性の確保 5.3.4 適切なテスト容易性の確保 5.3.5 運用を支える品質の確保 5.3.6 設計・実装の品質の維持 5.4 アーキテクチャ設計を支える 5.4.1 品質に関わるアーキテクチャ設計判断をサポートする 5.4.2 関心の分離、SLAP で責務を調整する 5.4.3 プロダクトリスクの分離、コンポーネント品質の積み上げを支える 5.4.4 アーキテクチャの疎結合設計の具体例:依存性逆転の原則 5.4.5 副作用の局所化で疎結合設計を推進する 5.4.6 契約による設計で凝集性を確保する 5.4.7 アーキテクチャ品質の評価 5.4.8 アーキテクチャ品質は顧客満足実現とビジネス成功の要 5.4.9 アンチパターン:アジャイルではアーキテクチャ品質も差分開発で構築する 5.5 開発者テストを支える 5.5.1 開発者テストとは 5.5.2 テスト駆動開発 5.5.3 開発者テストを支える要点 5.5.4 開発者テストを書く習慣をチームに定着させる 5.5.5 開発者テストの網羅性の確保 5.5.6 開発者テストの有効性の確保 5.5.7 開発者テストの保守性の確保 5.5.8 開発者テストをチームの資産として運用する 5.5.9 開発者テストにおける生成 AI の活用 5.6 テストを支える 5.6.1 テストの作成のサポート 5.6.2 テストの評価のサポート 5.6.3 テスト実行のサポート 5.6.4 テストの品質の確保 5.6.5 テストの保守性の確保 5.6.6 テストの信頼性の確保 5.6.7 テストコードの品質確保 5.7 リリースを支える 5.7.1 コンテキストに合わせたリリース方針の選択 第6章 開発活動を支える 6.1 変更を支える 6.1.1 変更に対する事前の備え 6.1.2 変更に対する品質保証の流れ 6.1.3 変更レビューを支えるバージョン管理システムと CI/CD 6.1.4 リスクベースドテストでピンポイントにリスクを確認する 6.2 ユーザビリティ確保を支える 6.2.1 ユーザビリティとは 6.2.2 ユーザビリティの品質保証の流れ 6.2.3 数字や言葉で扱えないユーザビリティを扱う 6.2.4 A/B テスト 6.2.5 ヒューリスティック評価 / エキスパートレビュー 6.3 性能効率の確保を支える 6.3.1 性能効率性とは 6.3.2 性能効率性の要求分析 6.3.3 性能効率性確保のポイント 6.3.4 性能確保の品質保証の基本方針 6.3.5 性能テストの要点 6.4 生成 AI の活用を支える 6.4.1 ソフトウェア開発での生成 AI の活用 6.4.2 生成 AI の課題に対応するためのポイント 6.4.3 生成 AI により開発のボトルネックになる品質保証 第7章 運用・保守を支える 7.1 運用・保守を支える 7.1.1 現代的なソフトウェア開発における運用・保守 7.1.2 プロダクトのデプロイプロセスの整備 7.1.3 顧客満足の評価と改善 7.1.4 運用と開発の連携による継続的改善 7.1.5 ソフトウェアの適切な廃止 7.1.6 品質悪化への対応 7.1.7 フィールドエンジニアリングで品質保証の力を磨く 7.2 運用中のモニタリングと評価 7.2.1 モニタリング指標の選択 7.2.2 モニタリングの仕組みの構築 7.2.3 プロアクティブアプローチの推奨 7.2.4 シフトライトテスト 7.3 市場の品質問題管理 7.3.1 市場の品質問題の詳細 7.3.2 市場の品質問題に対応する姿勢 7.3.3 市場の品質問題への備え 7.3.4 品質問題情報の蓄積 7.3.5 市場の品質問題対応プロセスの整備 第8章 マネジメントを支える 8.1 開発計画を支える 8.1.1 品質計画の策定 8.1.2 顧客満足に向けた開発計画の改善 8.1.3 開発計画の評価と洗練 8.1.4 見積もりとコミットメントを分ける 8.1.5 計画の保守・運用 8.1.6 品質戦略の策定 8.1.7 アジャイル開発での計画のサポート 8.2 マネジメントのモニタリングとコントロール 8.2.1 品質保証としてプロダクトマインドセットを維持する 8.2.2 品質の積み上げで進捗と品質を連動させる 8.2.3 事前のモニタリング設計に注力する 8.2.4 品質保証としてのマネジメントモニタリング 8.2.5 モニタリングに基づいたコントロール 8.3 リスクマネジメント 8.3.1 リスクとリスクマネジメント 8.3.2 リスクマネジメントの活動 8.3.3 品質保証としてのリスクマネジメント 8.3.4 品質リスクのマネジメントの要点 第9章 品質保証を支える仕組みの構築 9.1 顧客満足を継続的に支える仕組みの構築 9.1.1 有効な仕組み作りの工夫 9.1.2 ISO 9000 の品質マネジメントの原則 9.1.3 仕組みとしての開発インフラの整備 9.1.4 CI/CD 9.1.5 バージョン管理システム 9.1.6 ビルドシステム 9.2 開発プロセスの構築 9.2.1 開発プロセスの構成 9.2.2 開発プロセスモデルと開発方法論 9.2.3 プロセスアプローチ 9.2.4 品質保証を支える開発プロセスの構築方針 9.2.5 開発プロセスを構成する各工程の構築方針 9.2.6 品質保証を支援するプロセスを整備する 9.2.7 生きたプロセスを維持する 9.2.8 開発プロセス構築の流れ 9.3 開発プロセスの改善 9.3.1 開発プロセス改善の要点 9.3.2 開発プロセス改善の流れ 9.4 品質保証体制の構築 9.4.1 組織構成と役割・責任の設計 9.4.2 組織としての品質保証能力の維持 9.4.3 品質保証を支える教育 9.5 品質保証を支える品質文化の形成 9.5.1 あるべき姿を立脚点にする 9.5.2 品質文化の形成 9.5.3 品質文化の可視化 9.5.4 品質についての適切なコミュニケーションの活性化 9.5.5 チーム全体アプローチの実現 9.6 品質保証の人材確保 9.6.1 品質保証人材に求められる能力 9.6.2 品質保証にかかわる人材の採用 9.6.3 人材採用の流れ 第10章 品質保証に関わる手法・技術・アプローチ 10.1 レビューの方法・技法 10.1.1 レビュー運営種別 10.1.2 レビューのリーディング技法 10.1.3 チームレビューの進め方 10.1.4 プルリクエスト/マージリクエストレビューの進め方 10.1.5 パースペクティブベースドレビューの進め方 10.1.6 モビング(チーミング)の進め方 10.2 システムテストのテスト設計アプローチ 10.2.1 システムテストでのテスト設計プロセスの工夫 10.2.2 テスト分析 10.2.3 テスト設計 10.2.4 テスト実装 10.3 モデリング 10.3.1 モデリングは要点を表現する 10.3.2 モデルの記法 10.3.3 モデリングは探索的 10.3.4 品質保証を支えるモデリング 10.3.5 状態遷移モデルによる状態分析 10.3.6 Why ツリーによる原因分析



