SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

QA to AQ:アジャイル品質パターンによる、伝統的な品質保証からアジャイル品質への変革

品質の可視化のためのパターン「システム品質アンドン」「品質ロードマップ」「品質バックログ」

QA to AQ 第8回

品質バックログ

  • パターン:品質バックログ(原題Qualify the Backlog 原著 Joseph W. Yoder, Rebecca Wirfs-Brock, Hironori Washizaki)[4]

 「人には燃えることが重要だ。燃えるためには薪が必要である。薪は悩みである。悩みが人を成長させる」――松下幸之助(日本の実業家)

 アジャイル開発のバックログには、プロジェクトやリリースを完成させるために必要な機能と技術的なタスクの順序付けされたリストが含まれています。このバックログの順序は作業の優先順位にしたがっています。各バックログ項目の完成の定義は、重要なシステムの品質要件を含む必要があるかもしれません。とはいえ、システムが持つべき品質特性の一部は、一つ以上のユーザーストーリーにまたがっているので注意が必要です。

 アジャイル開発者がシステムが持つべき品質特性を理解し、実装し、そしてテストしようとするとき、その作業範囲をより明確にするにはどうすればよいでしょうか?

***

 重要な品質特性に十分に早く焦点を合わせないと、重大な問題、遅延、手直しを引き起こす可能性があります。パフォーマンスやスケーラビリティの欠陥を改善するには、システムのアーキテクチャに大幅な変更と修正が必要になることがあるでしょう。一方、開発サイクルの早い段階でシステムの品質特性に焦点を合わせすぎると、過剰設計と早期最適化につながる可能性があります[Knuth]。

 プロダクトオーナーの関心はシステムの機能にあり、どの機能が最も価値をもたらすかを基準としてバックログに優先順位をつけます。多くのプロダクトオーナーは、技術的な項目でバックログが乱雑になっているところを見たくないものです。あるいは、それらがシステム全体の設計に及ぼす影響を理解していないために、バックログにある技術的な項目の優先度を低くしてしまうことだってあるでしょう。

 システムの品質要件がユーザーストーリーの受け入れ基準の中に埋もれていると、開発者はその重要性を見落としたり、対応に要する労力を過小評価したりすることがあります。望ましいシステムの品質特性は、魔法のように実現するものでも、実装を進めるにつれて少しずつ明らかになるものでもありません。継続的な作業の一環として、腰を据えて品質に取り組む必要があります。

 システムの品質特性の中には、検証する前に一定のインフラストラクチャ構築が必要になるものもあるでしょう。システムが受け入れられるには、望ましいシステムの品質特性と共に機能が提供される必要があります。一定の品質特性を提供するためにどれだけのインフラストラクチャが必要なのかを知るのは難しいことかもしれません。

***

 品質項目を作成してバックログに追加しましょう。品質項目には、品質シナリオ、品質ストーリー、および一部のユーザーストーリーの品質の折り込みが含まれます。

 品質ワークショップで品質シナリオを特定した場合、それらは作業項目としてバックログに追加することができます。特定の品質が複数のユーザーストーリーに跨っている場合、例えば、複数のビジネストランザクションにまたがったパフォーマンスなどの場合は、個別の品質ストーリーを作成してバックログに追加し、その品質要件を表すようにすると、全体的な品質がより目に見える形になるでしょう。特定の品質特性が一部の機能のユーザーストーリーに関連している場合もあります。そのような場合は品質の折り込みを使うことができます。品質の折り込みを使うことで、必要な品質特性が提供されるまで、ストーリーが完成したと宣言されないようにすることができるでしょう。

 これらの品質特性を製品バックログ上で管理することが面倒になった場合は、技術バックログを別に作ってそちらで管理しても良いでしょう。プロダクトオーナーは、製品のエンドユーザー機能の提供に集中したいので、これらの項目をメインの製品バックログに入れたくないかもしれないからです。バックログは一つだけにすべきだと考える人もいますが、経験上、技術バックログを別で作ることにもメリットがあることがわかっています。チームに価値を与えることなら何でもやってみることが重要ではないでしょうか。

 システム品質やアーキテクチャの問題を専門に扱うチームが、この技術バックログに取り組んでもよいでしょう。別々のバックログを持つ場合に解決しなければならない問題の一つは、作業を調整し、ユーザーストーリーに基づいてシステムの品質特性と機能間の依存関係を管理する方法です。例えば、あるユーザーストーリーを優先すると、そのストーリーのサポートに必要なシステムの品質特性を優先することになるかもしれません。バックログの整合性がとれてないと、機能をサポートする品質特性を提供することはできません。

 CMU/SEI(カーネギーメロン大学ソフトウェア工学研究所:Carnegie Mellon University / Software Engineering Institute)[Bass]は、品質ワークショップを実施し、品質シナリオを定義するための、実績のある方法論をいくつか提案しています。QAW(品質特性ワークショップ:Quality Attribute Workshop)[Bar]、SAAM(ソフトウェアアーキテクチャ分析法:Software Architecture Analysis Method)、ATAM(アーキテクチャトレードオフ分析法:Architectural Tradeoff Analysis Method)などです。アジャイル品質の考え方では、品質ワークショップとレビューは、システムが開発されるにつれて段階的に実施されます。これらの会議は、より短く、即時のアーキテクチャ上の懸念に焦点を当てている傾向があります。重要な品質について意見を交わすために、これらのワークショップで品質シナリオ品質ストーリー[YWA]を書くことがあります。

 バックログに品質関連の項目があることの価値の一つは、それらが眼に見えるようになることです。しかし、それらに十分に高い優先度を割り当てていなければ、それらは実行されません。チームとプロダクトオーナーは、品質を無視するとどうなるか理解する必要があるでしょう。Phillippe Kruchtenは、ユーザーからは見えないバックログ項目に色をつけて目立たせることを提案しています。例えば、品質関連項目を含むアーキテクチャ機能は黄色に、技術的負債削減項目は黒に、というようにです[Kru]。

おわりに

 筆者らは、本連載やセミナーなどを通じてQA to AQの内容をお届けしつつ、各パターンの認知や実践状況の調査を通じて、アジャイル開発における品質の取り組みの一端を明らかとし、広く多くの皆さんとご一緒にQA to AQのさらなる発展や関連する活動を進められればと考えています。

 例えば2020年8月にQA to AQを紹介するスマートエスイーセミナー [SmartSE] を開催して参加者にアンケート調査したところ、「できるだけ自動化」「アジャイル品質プロセス」「障壁の解体」の3つのパターンはよく使われていることがわかりました。これらは実際に他のパターンを用いるうえで基礎となるパターン群であり、まずはこれらの実践から入る形は自然で的確といえます [UAS]。

 逆に利用率の低いパターンとしては「アジャイル品質スペシャリスト」や「プロダクト品質チャンピオン」といった特定の役割にまつわるものが多くありました。その理由としては、アジャイル開発のチームへと品質の組み入れや保証を扱う専門家を組み入れられていないか、もしくは、これらのパターンにおける役割が十分に伝わっていない可能性があります。今後、最初からQA担当者をチームに含める「QAを含むOneチーム」をまずは実現し、その進展の中でこれらの役割に関する活動を進める形が考えられます [UAS]。

 パターンの良さは、日ごろの何気ない活動へと名前をつけることで、皆でその良さや制限を意識的にとらえ、明確に伝え、広げやすくすることにあります。ご紹介してきたQA to AQの中には「前から実践してるよ」というものがあおりではないでしょうか。あるいは、「うちではもっとこうしてるよ」というバリエーションや周辺の活動もきっとあることと思います。本連載をきっかけとして、皆さんとご一緒に良い事例や活動を広く共有し、アジャイル開発における品質の取り組みを一層深めていければと思います。

参考文献

  • [1] Joseph Yoder, Rebecca Wirfs-Brock, Ademar Aguilar, “QA to AQ: Patterns about transitioning from Quality Assurance to Agile Quality,” 3rd Asian Conference on Patterns of Programming Languages (AsianPLoP 2014), Tokyo, Japan, 2014.
  • [2] Joseph W. Yoder and Rebecca Wirfs-Brock, “QA to AQ Part Two: Shifting from Quality Assurance to Agile Quality,” 21st Conference on Pattern Languages of Programs (PLoP 2014), Monticello, Illinois, USA, 2014.
  • [3] Joseph W. Yoder, Rebecca Wirfs-Brock, Hironori Washizaki, “QA to AQ Part Three – Shifting from Quality Assurance to Agile Quality – Tearing Down the Walls,” 10th Latin American Conference on Pattern Languages of Programs (SugarLoafPLoP 2014), Pousada Armação dos Ventos, Brazil, 2014.
  • [4] Joseph W. Yoder, Rebecca Wirfs-Brock, Hironori Washizaki, “QA to AQ Part Four - Shifting from Quality Assurance to Agile Quality - Prioritizing Qualities and Making them Visible,”22nd Conference on Pattern Languages of Programs (PLoP 2015), Pittsbirgh, USA, 2015.
  • [5] Joseph W. Yoder, Rebecca Wirfs-Brock, Hironori Washizaki, “QA to AQ Part Five,” 5th Asian Conference on Pattern Languages of Programs (AsianPLoP 2016), February 24-26, 2016, Taipei, Taiwan.
  • [6] Joseph W. Yoder, Rebecca WirfsBrock, Hironori Washizaki, “QA to AQ – Part Six – Being Agile at Quality,” 23rd Conference on Pattern Languages of Programs (PLoP 2016), Monticello, Illinois, USA, OCTOBER 24-26, 2016.
  • [Bar] Barbacci M., Ellison R., Lattanze A., Stafford J., Weinstock C., Wood W., “Quality Attribute Workshops (QAWs), Third Edition,” Technical Report, CMU/SEI-2003-TR-016, 2003.
  • [Bass] Bass L., Clements P., Kazman R., Software Architecture in Practice (3rd Edition), Addison-Wesley, 2012.
  • [Coc] Cockburn, A., Crystal Clear: A Human-Powered Methodology for Small Teams: A Human-Powered Methodology for Small Teams, AddisonWesley, 2004.
  • [IEEE730] IEEE Standard 730-2014 - IEEE Standard for Software Quality Assurance Processes, 2014.
  • [IEEE1012] IEEE Standard 1012-2012 - IEEE Standard for System and Software Verification and Validation, 2012.
  • [ISO] ISO/IEC 25010: 2011 Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models, 2011.
  • [Knuth] Knuth, D., “Structured Programming With Go To Statements,” Computing Surveys, Vol 6, No 4, December 1974, pp. 261-301.
  • [Kru] Kruchten, P., Blog post - “The Missing Value of Software Architecture,”2013.
  • [YWA] Yoder J., Wirfs-Brock R., and Aguilar A., “QA to AQ: Patterns about transitioning from Quality Assurance to Agile Quality,” 3rd Asian Conference on Patterns of Programming Languages (AsianPLoP 2014), Tokyo, Japan, 2014.
  • [SmartSE] セミナー: アジャイル開発と品質
  • [UAS] 鷲崎弘宜, ”アジャイル品質はどのように取り組まれているのか? ― パターンQA to AQの実践状況より ―”、Ultimate Agile Stories 10th Anniversary, 2021.(掲載予定)

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
QA to AQ:アジャイル品質パターンによる、伝統的な品質保証からアジャイル品質への変革連載記事一覧

もっと読む

この記事の著者

鷲崎 弘宜(ワシザキ ヒロノリ)

 早稲田大学 研究推進部 副部長・グローバルソフトウェアエンジニアリング研究所所長・教授。国立情報学研究所 客員教授。株式会社システム情報 取締役(監査等委員)。株式会社エクスモーション 社外取締役。ガイオ・テクノロジー株式会社 技術アドバイザ。ビジネスと社会のためのソフトウェアエンジニアリングの研究、実践、社会実装に従事。2014年からQA2AQの編纂に参画。2019年からは、DX時代のオープンイノベーションに役立つデザイン思考やビジネス・価値デザインからアジャイ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

長谷川 裕一(ハセガワ ユウイチ)

 合同会社Starlight&Storm 代表社員。日本Springユーザ会会長。株式会社フルネス社外取締役。 1986年、イリノイ州警察指紋システムのアセンブリ言語プログラマからスタートして、PL,PMと経験し、アーキテクト、コンサルタントへ。現在はオブジェクト指向やアジャイルを中心に、コンサルテ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

濱井 和夫(ハマイ カズオ)

 NTTコムウェア株式会社 技術企画部プロジェクトマネジメント部門、エンタープライズビジネス事業本部事業企画部PJ支援部門 兼務 担当部長、アセッサー。PMOとしてプロジェクトの適正運営支援、及びPM育成に従事。 IIBA日本支部 教育担当理事。BABOKガイド アジャイル拡張版v2翻訳メンバー。ビジネスアナリシス/BABOKの日本での普及活動に従事。Scrum Alliance認定Product Owner。SE4BS構築やQA2AQ翻訳チームのメンバー。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

小林 浩(コバヤシ ヒロシ)

 株式会社システム情報 フェロー CMMコンサルティング室 室長。CMMI高成熟度リードアプレイザー(開発,サービス,供給者管理)。AgileCxO認定APH(Agile Performance Holarchy)コーチ・アセッサー・インストラクター。Scrum Alliance認定ScrumMaster。PMI認定PMP。SE4BS構築やQA2AQ翻訳チームのメンバー。CMMIやAPHを活用して組織能力向上を支援するコンサルテ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

長田 武徳(オサダ タケノリ)

 株式会社エヌ・ティ・ティ・データ シニアITアーキテクト。ITサービス・ペイメント事業本部所属。2006年入社以来、決済領域における各種プロジェクトを担当後、2018年よりプロダクトオーナ・製品マネージャとしてアジャイル開発を用いたプロジェクトを推進。現在は、アジャイル開発におけるQAプロセスの確...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

田村 英雅(タムラ ヒデノリ)

 合同会社 GuildHub 代表社員。日本 Spring ユーザー会スタッフ。大学で機械工学科を専攻。2001 年から多くのシステム開発プロジェクトに従事。現在では主に Java(特に Spring Framework を得意とする)を使用したシステムのアーキテクトとして活動している。英語を用いた...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

陳 凌峰(チン リョウホウ)

 フリーランサー。2003年に上海交通大学(ソフトウエア専門)を卒業後、2006年から日本でシステム開発作業に従事。技術好奇心旺盛、目標は世界で戦えるフルスタックエンジニア。現在はマイクロサービスを中心にアジャイル 、DevOpsを展開中。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/13673 2021/03/25 11:00

おすすめ

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー