SHOEISHA iD

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

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

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

品質のアジャイルなあり方(2):「アジャイル品質スペシャリスト」「品質チェックリスト」「品質作業の分散」

QA to AQ 第3回


  • X ポスト
  • このエントリーをはてなブックマークに追加

 本連載では、アジャイル開発において効率的かつ効果的に品質保証を進めるために有用な実証済みのパターン集『Quality Assurance to Agile Quality』(以下、QA2AQ)の和訳を、関連するいくつかのまとまりに分けて提供することで、アジャイル開発における品質保証の実践をお手伝いします。3回目となる今回は、アジャイルプロセスにおける品質保証のあり方や役割のパターンをまとめた、分類「品質のアジャイルなあり方」から3つのパターン、アジャイル品質スペシャリスト(Agile Quality Specialist)、品質チェックリスト(Quality Checklists)、品質作業の分散(Spread the Quality Workload)の和訳を提供します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

表1 QA2AQにおける分類とパターン
分類 概要 パターン名
中核 他のパターンを用いるうえでの基礎となるパターン
  • アジャイル品質プロセス [1](第1回)
  • 障壁の解体 [3](第1回)
品質のアジャイルなあり方 アジャイルプロセスにおける品質保証のあり方や役割のパターン
  • QAを含むOneチーム [1](第2回)
  • 品質スプリント [1](第2回)
  • プロダクト品質チャンピオン [5](第2回)
  • アジャイル品質スペシャリスト [6](第3回)
  • 品質チェックリスト [5](第3回)
  • 品質作業の分散 [6](第3回)
  • 品質エキスパートをシャドーイング [5]
  • QAリーダーとペアリング [3]
  • できるだけ自動化 [6]
品質の特定 重要な品質を特定するためのパターン
  • 重要な品質の発見 [2]
  • 品質シナリオ [1]
  • 品質ストーリー [1]
  • 測定可能なシステム品質 [2]
  • 品質の折り込み [1]
  • 着陸ゾーン [2]
  • 着陸ゾーンの再調整 [2]
  • 着陸ゾーンの合意 [2]
品質の可視化 重要な品質を可視化しチームメンバーに気付かせるパターン
  • システム品質ダッシュボード [2]
  • システム品質アンドン [4]
  • 品質ロードマップ [4]
  • 品質バックログ [4]

アジャイル品質スペシャリスト

  • パターン:アジャイル品質スペシャリスト(原題Agile Quality Specialist, 原著 Joseph W. Yoder, Rebecca WirfsBrock, Hironori Washizaki)[6]

 「正しい質問をすることは、正しい答えをだすのと同じくらいのスキルを必要とする」――Robert Half(事業家)

 アジャイルプロジェクトの品質保証(QAチーム)は、機能の観点から要件を表現したユーザーストーリーに集中して評価と検証を行っています。アジャイルプロジェクトのQA担当者は機能テストが得意なのかもしれません。しかし、ソフトウェアが、エンドユーザーのニーズを満たすためには、拡張性、使いやすさ、安全性、信頼性といったシステムが持つべき品質特性も示す必要があります。目標を達成するためには、個々のユーザーストーリーだけでなく、システム全体の品質特性を検証する必要があります。

 アジャイルチームは、どのようにしてシステムが持つべき品質特性を特定し、それをテスト、検証するための最高の経験と実習を積んで、それを実現することができるでしょうか?

***

 システムの品質特性の一部は、仕様、設計、実装、そして検証が適切に行われたかを確認するために、相当の専門知識を必要とします。主に機能面に焦点が置かれている場合、品質特性は重視されない可能性があります。多くの品質特性にはさまざまな専門知識が必要ですし、この専門知識をアジャイルチームが必ずしも有しているわけではありません。

 通常、ユーザーストーリーに具体的な品質特性の受け入れ基準が含まれることはありません。機能に焦点を当てることはメリットもありますが、エンドユーザーは機能が提供する価値を簡単に評価することができるため、機能が強調されすぎてしまうかも知れません。

 システムは、品質特性を含む要件全てが適切に対処されるまで完成したとは言えません。しかし、トレードオフは常に存在しますので、完璧を求めるのは間違っています。ビジネス機能とシステムの品質特性の両方にバランス良く対処する必要があります。特に相反する要件のバランスをとるために、品質特性についてのある程度の専門知識が要求されます。

 パフォーマンスやセキュリティ、信頼性といった要件を検証するテストを実装するよりも、システム機能を検証するテストを作成する方が簡単です。システム品質のテストは多くのユーザーストーリーに影響を与える可能性があり、これらの要件を適切に検証するには、多くの知識とスキルが要求されます。

 システム設計では、重要なビジネス要件を満たすのに十分な機能を実装する一方で、システムの品質要件に適切に対処することのトレードオフを行います。設計のトレードオフを行う時は、設計を過剰にしたり、システム品質の細部にこだわろうとしたりする傾向があります。その一方で、重要なシステム品質の目標を達成しようとして甘い見込みで実装を改良した結果、大変な事態になることもあります。

***

 システム品質に関する特定のスキルがチームに不足しているなら、アジャイル品質スペシャリストをさまざまなタイミング(場合によってはフルタイム)で投入し、システムの品質特性の説明、検証、そしてテストを支援してもらいましょう。

 アジャイル品質スペシャリストは、特定のシステムの品質特性に関連する深い技術スキルを持つQAの役割です。アジャイルチームには、アーキテクトやアジャイル品質スペシャリストの深いスキルが必要になることがあります。たとえば、製品が安全でなければならないなら、セキュリティを最初から設計してシステムに組み込み、テストと検証を適切に実施する必要があります。セキュリティは魔法のように現れたりはしません。チームはQAのセキュリティ専門家だけでなく、セキュリティのアーキテクトか開発者の専門知識も必要とすることがあります。アジャイル品質スペシャリストは、チームが必要なスキルを習得するまでの一時的なメンバーですが、必要であればフルタイムのメンバーにもなります。アジャイル品質スペシャリストは、品質関連タスクを直接支援することでチームと協働します。単なるアドバイザーというよりは、実際に手を動かす人達です。

 スペシャリストという言葉には、特定の知識だけを持った頑固者という悪い意味もあります。一部のアジャイルチームでは、スペシャリストの採用を忌避することさえあります。しかし、チームで働いて良いのは「T字型[注1]」 の人たちだけだというのは希望でしかありません。特定の品質関連のタスクを実行するために必要な深いスキルを、必ずしも誰もが簡単に習得できるわけではありません。スペシャリストが必要な場合がありますが、スペシャリストは必ずしもT字型ではありません。

 組織に品質のスペシャリストがいる場合、通常は品質保証グループに所属します。そうでない場合、組織の別の部署から品質のスペシャリストを連れてくるか、専門的な役割を支援するために外部のスペシャリストを連れてくることができます。このスペシャリストは、アジャイルの実践やプロセスに精通していない場合があります。その人をチームに効果的に組み込むには、一緒に働いて、アジャイルの価値と好ましい働き方をスペシャリストに理解してもらう必要があるかもしれません。スペシャリストの情報とアドバイスに基づいて、自分たちのプロセスを変えたくなることがあるかもしれません。多くの場合、品質のスペシャリストは、使いやすさ、パフォーマンス、セキュリティなど、異なる専門分野を持っています。何人もの品質のスペシャリストの助けを必要とすることもあるでしょう。

 アジャイル品質スペシャリストは、チーム全体にシステムの品質特性に対する意識を高めることでしょう。彼らは、システム品質関連のタスクを一人でも、または共同でもこなすことができます。たとえば、重要な品質の発見や、品質シナリオ品質ストーリーの作成やレビューの際に助けになってくれます。彼らは、品質の折り込み中に品質関連の受け入れ基準が適切に定義されているか確認してくれます。そして、有益なシステム品質アンドンシステム品質ダッシュボードを作成してくれます。

 アジャイル品質スペシャリストが貢献したり、主導できたりするタスクはたくさんあります。彼らに負荷が集中し、品質関連の専門知識について唯一の情報源となってしまわないようにすることが大切です。アジャイル品質スペシャリストは、QAリーダーとペアリングすることや品質エキスパートをシャドーイングすることなどを通して、品質作業の分散を促進することができます。

[注1] T字型

 T型の人材は、専門分野の深い知識を持つ縦棒のI型の人材(スペシャリスト)に広い知識の横棒「ー」をプラスした人材のこと。T字型の人々には、深くて幅広いスキルと知識がある[Brown]

次のページ
品質チェックリスト

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
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を展開中。

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/12324 2020/09/09 17:43

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング