Upgrade to Pro — share decks privately, control downloads, hide ads and more …

アジャイル品質のパターンとメトリクス

 アジャイル品質のパターンとメトリクス

鷲崎弘宜, "アジャイル品質のパターンとメトリクス", AGESTプレミアムセミナー, 2022年11月28日

Hironori Washizaki

November 28, 2022
Tweet

More Decks by Hironori Washizaki

Other Decks in Technology

Transcript

  1. アジャイル品質のパターンとメトリクス 早稲田大学グローバルソフトウェアエンジニアリング研究所 所長 国立情報学研究所 客員教授 株式会社 システム情報 取締役(監査等委員) 株式会社 エクスモーション

    社外取締役 文科省社会人育成事業 スマートエスイー 事業責任者 IEEE Computer Society 副会長 鷲崎 弘宜 http://www.washi.cs.waseda.ac.jp/ [email protected] わしざき ひろのり AGESTプレミアムセミナー 2022年11月28日 1
  2. 目次 • アジャイル品質とプラクティス: SQuBOKほか • アジャイル品質パターン: QA to AQ •

    主要なアジャイルメトリクス • アジャイルメトリクスと利用者満足の関係 • まとめ 2
  3. アジャイル開発とマインド • アジャイル宣言 http://www.agilealliance.org/ • 反復漸進、顧客(現場)フィードバック、変化適応的 • 「受け身・パートナー任せ」から「価値共創」へ 3 手順や道具

    人と対話 文書 動く内容や実活動 契約交渉 顧客や現場との協力 計画通り 変化への対応 ITベンダ ユーザ企業 システ ム部 ITベンダ ユーザ企業 システ ム部 アジャイ ル拠点で の共創 経済産業省デジタルトランスフォーメーションの加速に向けた研究会, DXレポート2中間まとめ, 2020 https://www.meti.go.jp/press/2020/12/20201228004/20201228004.html 納品
  4. アジャイル開発における品質は 従来とはどう異なるのか? • 従来の品質保証 – 主に特定の人々(品質保証部門、QA) – 主に特定の段階 – 開発完了後に品質の確認

    • アジャイル品質 – 専門家を交えたチーム全体 – ロードマップ策定から日々のモニタリングに至るあらゆる段階 – 各イテレーションにおいて品質作りこみ: 動くソフトウェアの テスト、自動化、変更容易性ほか 4 参考: ソフトウェア品質知識体系ガイド(第3版)-SQuBOK Guide V3-、2021.
  5. 5 DevOpsとアジャ イル開発におけ る品質の概念 DevOpsとアジャイ ル開発品質保証 マネジメント DevOpsとアジャ イル開発の品 質保証技術

    • アジャイル品 質保証パター ン QA2AQ • アジャイルス キル体系 SFIA DevOpsとアジャイル開発における品質 • DevOpsにお ける品質特性 • アジャイル開 発の品質指標 • アジャイルメトリクス • 品質ダッシュボード • DevOpsとアジャイル開発のツー ルと自動化 • CI (継続的統合) • アジャイルテスト: イテレーション • 継続的テスト: CI・都度 • シフトレフトテスト: 仕様・設計 • シフトライトテスト: 稼働後 • カナリアテスト: 一部で確認 飯泉紀子、鷲崎弘宜、誉田直美 監修、SQuBOK策定部会 編、“ソフトウェア品質 知識体系ガイド(第3版)-SQuBOK Guide V3-”、ISBN 978-4-274-22631-1、 2020/11/21、オーム社
  6. DX・AI・IoT時代の動的品質 • 対象: データ、ソフト、システム – クローズよりもオープンへ – 静的よりも動的へ • プロセス

    – アジャイル&DevOpsが標準 – 計画よりも変化へ • 基準 – 単純・確実から複雑・不確実へ – 100%よりも95%の正しさとリスクへ – 要求よりも価値へ 6 プロセス参考: 産業技術総合研究所サイバーフィジカルセキュリティ研究センター テクニカルレポート CPSEC-TR-2020001, 機械学習品質マネジメントガイドライン, https://www.cpsec.aist.go.jp/achievements/aiqm/ 構想・企画 システム定義 リスク分析 要求定義 データ準備 プロト開発 実験・評価 利用終了 性能監視 運用 統合検査 データ準備 修正 データ収集 本開発 品質検査 改修 品質 検査 システ ム更新 PoC アジャイル Dev Ops
  7. 様々なアジャイル品質の取り組みとプラクティス • ソフトウェア品質知識体系ガイド 第3版SQuBOK Guide V3( 飯泉紀子、鷲崎弘宜、誉田直美 監修、SQuBOK策定部会 編) –

    アジャイル開発上の品質の指標、マネジメント、技術など – アジャイル品質パターン QA to AQ の紹介 • 品質重視のアジャイル開発: 成功率を高めるプラクティス・ Doneの定義・開発チーム編成(誉田直美, 2020) – アジャイルメトリクス、Doneの定義、チェックリスト、品質保証の ポイント • アジャイル開発のプロジェクトマネジメントと品質マネジメン ト: 58のQ&Aで学ぶ(居駒幹夫, 梯雅人, 2020) – ソフトウェア開発時の品質を含むマネジメント実践処方 • アジャイル/DevOps開発における品質保証と信頼性(荻野恒太 郎, 日本信頼性学会論文誌, 2020) – QAテスト、メトリクス、サイクル他 – http://kokotatata.hatenablog.com/entry/2020/06/01/163652 7
  8. 目次 • アジャイル品質とプラクティス: SQuBOKほか • アジャイル品質パターン: QA to AQ •

    主要なアジャイルメトリクス • アジャイルメトリクスと利用者満足の関係 • まとめ 8
  9. アジャイル品質パターン QA (Quality Assurance) to AQ (Agile Quality) • アジャイル品質の考え方と推奨される活動の23+のパターン集

    – 2014年 Joseph Yoder, Rebecca Wirfs-Brock, Ademar Aguilar発表、以降、鷲崎も加わり拡充 • Joseph Yoder、Rebecca Wirfs-Brock、Ademar Aguiar、鷲崎 弘宜 著、翻訳:鷲崎 弘宜 、長谷川 裕一、濱井 和夫、小林 浩、長田 武徳、陳 凌峰、“アジャイル品質パターン「QA to AQ」 伝統的な品質保証からアジャイル品質への変革”、翔泳社、2022 https://www.amazon.co.jp/dp/B0BGRP1VRV/ 9 中核パターン 品質の特定 品質の可視化 品質のアジャ イルなあり方
  10. QAを含むOneチーム 10 アジャイル品質チームでは、最初 からQA担当者をアジャイルチーム の一部として含めましょう。 QA担当者が開発チームの一部ではない場合に は、多くの問題が発生する可能性があります( 「我々」対「彼ら」シンドロームの発生)。 プロダクト品質チャンピ オン

    アジャイル品質スペシャ リスト プロダクトオーナーと協働 し開始時から顧客要求理解 テスト戦略を通じてチー ムに経験提供 QA プロダク トオーナ ー 開発チーム 品質エキスパートをシャド ーイング エキスパートと協働し経験 展開 QAリーダーとペアリング 開発者をQAリーダーとペアを 組ませて品質プログラミング 品質作業の分散 J.Yoder、R. Wirfs-Brock、A. Aguiar、鷲崎 著、翻訳:鷲崎、長谷川、濱井、小林、長田、陳、“アジャイル品質パターン「QA to AQ」 伝統的な品質保証からアジャイル品質への変革”、翔泳社、2022
  11. アジャイル品質プロセス 11 スプリント計画 製品ビジ ョン/ロー ドマップ 製品ビジ ョン/ロー ドマップ 利害関係者

    への展開 利害関係者 への展開 機能 受入テスト 機能 受入テスト バックログ 管理 スプリント 実行 デイリーレビュー フィードバックの取り込み 重要な品質シナリ オの特定 品質項目 を含める 品質テスト 品質テスト 関連する 品質タスク を含める アジャイルプロセスの一環として、システ ムの品質を理解し、記述し、開発およびテ ストする方法を構築しましょう。 重要なシステム品質の検査や保証をアジャイ ルプロセスにどのように組み込めばよいでし ょうか? J.Yoder、R. Wirfs-Brock、A. Aguiar、鷲崎 著、翻訳:鷲崎、長谷川、濱井、小林、長田、陳、“アジャイル品質パターン「QA to AQ」 伝統的な品質保証からアジャイル品質への変革”、翔泳社、2022 品質テスト 品質テスト
  12. 品質シナリオ 12 プロセスの早い段階で、手軽な方 法を利用して、性能、負荷、信頼 性、セキュリティなどの重要な非 機能要件を扱う大まかな品質シナ リオを作成しましょう。 開発中に対処する必要がある重要な 品質特性について、どのようにすれ ばよりよい理解と大まかな見解を得

    ることができるでしょうか? J.Yoder、R. Wirfs-Brock、A. Aguiar、鷲崎 著、翻訳:鷲崎、長谷川、濱井、小林、長田、陳、“アジャイル品質パターン「QA to AQ」 伝統的な品質保証からアジャイル品質への変革”、翔泳社、2022 C4モデルから目標に至る品質定義(NTTデータ 長田さんのScrum開発事例 ) システム コンテキスト図 コンテナ図 コンポーネント図 可用性 通常稼働時はPOS端末から行っ たリクエストに対して、NN%の 確率で24時間365日応答する システ ムA システ ムB アプリケー ションA1 A2 A3 コンポーネ ントCx Cy コード 品質シナリオ 性能 200件/秒全ての「決済のリクエ スト」の決済成功の通知を、N秒 以内99.9%ileにPOS端末へ送る
  13. できるだけ自動化 13 環境を整え、ツールを使用して、バ リューを高める部分をできるだけ早 く自動化しましょう。開発の終盤ま で自動化のタスクを先送りしないよ うにしましょう。 重要な品質特性について、迅速 なフィードバックを支援し、現 在の状態を共有し可視化するた

    めに、ツールや環境をどのよう に確立できるのでしょうか? スプリント デイリー スクラム など 完成部分の 品質テスト 全体の 品質 テスト テスト管理 クラウドス トレージ AmazonS3 継続的イン テグレーシ ョン simulator 環境 テスト用 PC 負荷テスト Webアプリ テスト ブラウザ モバイル アプリ テスト 対象 モバイルア プリテスト テスト自動化(NTTデータ 長田さんのScrum開発事例) J.Yoder、R. Wirfs-Brock、A. Aguiar、鷲崎 著、翻訳:鷲崎、長谷川、濱井、小林、長田、陳、“アジャイル品質パターン「QA to AQ」 伝統的な品質保証からアジャイル品質への変革”、翔泳社、2022
  14. 品質ダッシュボード 重要な品質特性をテストし、検証するためのダッ シュボードを作成します。重要な品質特性が何か が概説され、れがバックログに含まれているので 、どれ監視する必要があるのか、進化に応じて測 定ツールをどのタイミングで作成できるのか、に 注意しておく必要があります。 システムが進化するにつれて、チームはどの システム品質特性が重要で、それらをどのよ うによりよく測定するかを理解しはじめます

    。アジャイルチームは、この情報にアクセス して可視化する手段をどうやって提供できる のでしょうか? J.Yoder、R. Wirfs-Brock、A. Aguiar、鷲崎 著、翻訳:鷲崎、長谷川、濱井、小林、長田、陳、“アジャイル品質パターン「QA to AQ」 伝統的な品質保証からアジャイル品質への変革”、翔泳社、2022 H. Nakai, K. Honda, H. Washizaki, Y. Fukazawa, K. Asoh, K. Takahashi, K. Ogawa, M. Mori, T. Hino, Y. Hayakawa, Y. Tanaka, S. Yamada, D. Miyazaki, ″Initial Industrial Experience of GQM-based Product-Focused Project Monitoring with Trend Patterns,” 21st Asia-Pacific Software Engineering Conference (APSEC 2014) ダッシュボードの例(Yahoo! Japan・早稲田大学の共同研究事例) 14
  15. 目次 • アジャイル品質とプラクティス: SQuBOKほか • アジャイル品質パターン: QA to AQ •

    主要なアジャイルメトリクス • アジャイルメトリクスと利用者満足の関係 • まとめ 15
  16. アジャイルメトリクスと特徴 • アジャイル開発における短期間の各イテレーションにおいて 所定の品質確保のために用いるメトリクス – 非アジャイル開発から定義や運用方法、ベンチマーク流用できるも の(例: プロセス全体の欠陥除去率、システムパフォーマンスなど) – 運用方法やベンチマークは異なってくるもの(例:

    イテレーション別 の欠陥除去率、テストカバレッジなど) – アジャイル特有のもの(例: ストーリーポイント、ベロシティなど) 飯泉紀子、鷲崎弘宜、誉田直美 監修、SQuBOK策定部会 編、“ソフトウェア品質知識体系ガイド(第3版)- SQuBOK Guide V3-”、ISBN 978-4-274-22631-1、2020/11/21、オーム社 側面 非アジャイル アジャイル 時点・扱い 静的 動的 評価 絶対値 相対値、変化量 再利用 ドメイン共通 プロジェクト固有 16
  17. アジャイルメトリクスの代表的情報源 • アジャイル品質メトリクスの最新サーベイ – López, L. et al., 2022. Quality

    measurement in agile and rapid software development: A systematic mapping, Journal of systems and software 最新 • アジャイル開発におけるビッグデータ解析のサーベイ – Biesialska, K., Franch, X., Muntés-Mulero, V., 2020. Big data analytics in Agile software development: A systematic mapping study. Inf. Softw. Technol. 106448. 最近 • アジャイルメトリクス全般のサーベイ – Kupiainen, E., Mäntylä, .M.V., Itkonen, J., 2015. Using metrics in Agile and lean software development–a systematic literature review of industrial studies. Inf. Softw. Technol. 62, 143–163. • 基本的なアジャイルメトリクスの解説 – Christopher W.H.Davis, “Agile Metrics in Action”, Manning Publications, 2015. (邦訳『アジャイルメトリクス』) 17
  18. 品質マネジメント指標メトリクス 一覧 データ源 品質マネジメント指標メトリクス 品質要求 ビルド 品質ビルド間の平均ビルド数,品質ビルド間の平均時間,ビルドパフォーマ ンス,ビルドのフィードバック時間,デプロイメント速度,品質ブランチ比 率,品質ビルド比率,ビルド成功比率 プロセスパフォーマ

    ンス プロダクト品質 課題(Issue) ビッグイシュー、バグの種類、バグ(総数)、バグ修正工数、バグ修正速度、 バグ比率(#バグ/#課題)、クローズドバグ、クローズド課題、クローズ ドタスク、課題の完全データ、重要課題、開発工数、開発速度、開発時間、 工数見積もり、バグ修正工数、課題(総数)、新規課題、古い課題、オープ ンバグ、スケジュール偏差、チームのコミュニケーション、チームの生産性、 テスト工数、利用者ビリティ課題、利用者課題 コスト、プロセスパ フォーマンス、プロ ダクト品質、生産性、 スケジュール 要求 要求変更性、要求曖昧性、要求分析、要求設計、要求リスク、仕様変更 アジリティ、プロダ クト品質 実行時 CPU使用率、機能使用率、グラフィックスカード使用率、メモリ使用率、動 作性能、描画速度、描画時間、応答時間、画面切り替え時間、システム稼働 率、システムクラッシュ、システムエラー、システム遅延、システム性能、 システムリソース、システムスループット、トランザクションレート プロダクト品質 ソースコード ブランチカバレッジ、コード変更、コード結合、コード複雑性、コード結合、 コード有効性、コード拡張性、コード柔軟性、コード機能性、コード不正、 コード再利用性、コードレビュー、コード臭、コード状態、コード理解性、 コード違反、コメント付きコード、コスト、重複コード、製品サイズ コスト、プロダクト 品質、生産性、プロ ジェクト成否、リス ク Quality measurement in agile and rapid software development: A systematic mapping (Journal of systems and software, 2022) 18
  19. 品質マネジメント指標メトリクス 一覧(つづき) データ源 メトリクス 評価目標要求 テスト テスト失敗率、信頼性モデル、パスカバレッジ、ステートカバ レッジ、テスト成功率、テスト実行率、テスト性能、テスト比 率、テスト速度、テスト、トランジションカバレッジ プロセスパフォーマンス、プロダ

    クト品質、生産性 バージョン管理 システム VCS チェックイン、コード変更、コミットコメント、コミットス ピード、コミット (合計)、ファイル リビジョン、イシュー コ メント、マージ速度、プルリクエスト頻度、プルリクエスト速 度、チームの活性化、技術的負債 プロセスパフォーマンス、プロダ クト品質、生産性、スケジュール、 リスク 課題・コード バグ率(#bugs/LOC)、コード変更、コード変更パフォーマ ンス、チーム生産性 プロダクト品質、生産性、プロ ジェクト成否 課題・テスト バグの種類、バグ抽出の生産性、テストスピード(1人時あた り) プロセスパフォーマンス、プロダ クト品質 課題・VCS チームの生産性 プロセスパフォーマンス コード・テスト パスカバレッジ、ステートカバレッジ、テストカバレッジ、ト ランジションカバレッジ プロダクト品質 コード・VCS チームの生産性 生産性 コード・テス ト・VCS テストカバレッジ(プルリクエストごと) プロダクト品質 Quality measurement in agile and rapid software development: A systematic mapping (Journal of systems and software, 2022) 19
  20. 課題数: リリース単位での信頼性・リリース予測(早稲田大学) “Foundation” http://foundation.zurb. com/ 20 438 500 予測完了日: 498

    予測完了日: 498 Hironori Washizaki, Kiyoshi Honda, Yoshiaki Fukazawa, “Predicting Release Time for Open Source Software based on the Generalized Software Reliability Model,” Proceedings of Agile Conference 2015 Issue数 日数
  21. 課題解決の速度: CIとの関係(早稲田大学) • CIの利用有無とチームサイズは課題解決期間に影響を与えるか? – GitHub上にある Travis CI を利用したことがあるプロジェクト の課題解決期間

    、チームサイズ、 現在の CI の利用状況 を取得 – CIを継続利用しているプロジェクト と CI の利用を放棄したプロジェクト に分 割し、チームサイズと課題解決期間の関係を分析 – データセットは Travis Torrent で公開されているリポジトリ 1,183 個(CI 継 続利用: 893 個、 CI 利用放棄: 285 個) • 結果. CI は、チームサイズが大きいと効果を発揮する可能性あり – CI利用のオーバヘッドにより課題解決期間に差が見られなくなるという解釈も Naoko Imai, Hironori Washizaki, Naohiko Tsuda and Yoshiaki Fukuzawa, “When is Continuous Integration Useful? Empirical Study on Team Size and Reporters in Development,” The 32nd International Symposium on Software Reliability Engineering (ISSRE 2021), Fast Abstract CI利用放棄 CI継続利用 課題解決期間 課題解決期間 21
  22. 品質マネジメント指標とメトリクスの実態 [件数] • 品質マネジメント上の指標を与える測定法 – 製品品質に関するものが大多数(保守性、信頼性が主)、他に生産性、スケジュール – 顧客視点で重要なはず利用者リティやセキュリティの取り組みはほぼ皆無 – 大切なはずの顧客満足、開発者満足の取り組みは限定的

    Quality measurement in agile and rapid software development: A systematic mapping (Journal of systems and software, 2022) 製品品質 生産性 プロセス パフォーマンス アジリティ スケジュール コスト リスク プロジェクト成功 顧客満足 開発者満足 製品 プロセス 人的資源 プロジェクト 予算 機能 適合性 保守性 性能効率性 信頼性 セキュリティ 22
  23. 目次 • アジャイル品質とプラクティス: SQuBOKほか • アジャイル品質パターン: QA to AQ •

    主要なアジャイルメトリクス • アジャイルメトリクスと利用者満足の関係 • まとめ 23
  24. ソフトウェアの価値と品質 • Weinberg「品質とは、誰かにとっての価値である」 24 ソフトウェアの価値: 顧客の満足、顧客のビジネス価値 顧客価値: 顧客満足度、エンド利用者満足 度、市場満足度、顧客数、主要顧客満足度 市場競争力:

    プロダクト競争力、市場投入ま での時間、品質、製品パフォーマンス、UX 技術・アーキテクチャ: 実装上の複雑さ、製 品アーキテクチャ、開発能力 経済価値・収益性: ROI(投資利益率)、 売上規模、顧客・市場シェア 費用対効果: 開発コスト、再利用、サー ドパーティ製品利用コスト 企業戦略: 企業戦略、製品戦略、ポート フォリオ、イネーブラー、企業ブランド 鷲崎 弘宜, DX時代に求められるソフトウェアの価値と品質および国際標準, 【Column】ソフトウェア品質はなぜ重要なのか?<連載>, ソフトウェア協会, 2021年12月3日 https://www.saj.or.jp/activity/project/psq/COLUMN_SWquality.html
  25. 品質と利用者満足の関係: OSSの場合 • 従来の情報システム成功モデルから、OSSの特徴を組み入れ • 提案モデルを用いて、OSSの成功のための5つの決定要因と、これらの 決定要因の間の多くの有意な関係を明らかに – ソフトウェア品質とコミュニティサービス品質が利用者満足に大きな影響 –

    ソフトウェア品質と利用者満足は、OSSの利用に大きな影響 – OSSの利用および利用者満足は、個人の便益に大きな影響 Measuring open source software success (Omega 37(2), 2009) ソフトウェア 品質 コミュニティ サービス品質 利用者 満足 OSS 利用 個人 便益 25
  26. 目次 • アジャイル品質とプラクティス: SQuBOKほか • アジャイル品質パターン: QA to AQ •

    主要なアジャイルメトリクス • アジャイルメトリクスと利用者満足の関係 • まとめ 27
  27. まとめと展望 • アジャイル品質 – SQuBOKに見る全体像 – チーム全体の取り組み&計画から日々の活動まで のあらゆる段階での取り組み • アジャイル品質パターン

    QA to QA – 中核、アジャイルなあり方、品質の特定、品質の 可視化 • アジャイルメトリクス – 動的、相対・変化量、プロジェクト特性加味 – 網羅的なサーベイあり – 利用者満足との関係解明に向けて 28
  28. APSEC 2022: Asia-Pacific Software Engineering Conference 12月6-9日 オンライン 情報処理学会ソフトウェア工学研究会主催 https://conf.researchr.org/home/apsec-2022

    AI時代の世界トップクラス基調講演! Prof. Shing-Chi Cheung (Hong Kong University of Science and Technology Professor) メタモルフィックテスト Dr. Grace A. Lewis (CMU Lead for the SEI Tactical and AI-enabled Systems initiative, IEEE-CS Vice President) 機械学習開発とソフトウェアアーキテクチャ Dr. Hiroshi Maruyama (Kao Corporation, Executive Fellow. The University of Tokyo, Project Professor. Preferred Networks, Inc., Fellow) 機械学習工学と日本発成果 アジャイルを含むソフトウェア工学 全体の体系と最前線の俯瞰! Evolution and use cases of the Guide to the Software Engineering Body of Knowledge (SWEBOK) in academia and industry ソフトウェア工学知識体系SWEBOKガイドの進化 と活用 モデレータ: 鷲崎弘宜 パネラ: Juan Garbajosa, Pankaj Kamthan, Kenneth E Nidiffer, Steve Schwarm, Steve Tockey 29